• 0

% >> ما دورها داخل دالة الباعة

لماذا تكتب جملة الطباعة هكذا 

print "Value : %s" %  dict.keys()

ولا تطبع هكذا

print ("Value : " + dict.keys())

ما دور النسبة المئوية مع حرف الأس داخل المزدوجتين وما دور النسبة المئوية خارجها فقد لاحظتها في أكثر من مرة يتم استعمالها ولا أعلم ماهو دورها

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أهلًا بك،

الإشارة % داخل علامات تنصيص print مع أحد الحروف d أو s أو غيرهم (specifiers)...ترمز لنوع المتغيرات التي ستُطبع... فمثلًا هنا %s تعني متغير نصي قادم. 

Capture.PNG

بينما الإشارة % خارج علامات التنصيص فهي كفاصل يُهيِئ جملة الطباعة لاستقبال أسماء المتغيرات المعنية بالترتيب.  

يوجد عدة أساليب للطباعة في لغة python وقد يبدو أن استخدام إشارة + للدمج داخل print هو أسهل هذة الطرق..

Capture2.PNG

 

لكن،فعليًا يفضل استخدام (specifiers) لعدة أسباب: (هذا لا يعني تجنب استخدام + لدمج النصوص بعمليات الطباعة)

  •  بناء جملة سلسلة التنسيق تعكس أكثر سهولةً وقابليةً للقراءة، حيث أن استخدام specifiers يفصل النمط عن البيانات. أيضًا، في مثال Python هذا، يقوم %s تلقائيًا بإجبار أي أنواع بيانات غير str أن تكون من نوع str؛ بينما خاصية الدمج هي غير متاحة إلا لأنواع البيانات النصية ولا يمكنك دمج نوع بيانات str مع نوع بيانات int.
  • البيانات النصية Python str غير قابلة للتغيير ، لذلك يجب نسخ السلسلة اليمنى واليسرى في السلسلة الجديدة لكل زوج من السلاسل، أي إذا أردت دمج أربعة سلاسل طولها 10 باستخدام إشارة +... فسيتم نسخ                   (10 + 10) + ((10 + 10) +10) + (((10 + 10) +10) +10) = 90 حرفًا ، بدلاً من 40 حرفًا متوقع وتزداد الأمور سوءًا مع زيادة عدد وحجم السلسلة. تعمل Java على تحسين هذه الحالة في بعض الأحيان عن طريق تحويل سلسلة التسلسل لاستخدام StringBuilder ، لكن Python لا تفعل ذلك التحسين. لذلك نقوم باستخدام specifiers %s لنأخذ القيم الأصلية ونتفادى عملية النسخ المتتابع اللإرادية التي تحدث عند إستخدام إشارة +.
  •  أسهل في التعديل في حالات جمل الطباعة الطويلة...مثلًا إذا قمت بتغيير أسماء متغيرات برنامجك فعند تعديل جملة الطباعة سيسهل عليك التوجه مباشرة لجانب أسماء المتغيرات خلف إشارة % خارج علامات التنصيص... فتكون المتغيرات في مكان واحد حول بعضها... متوقع أن تبحث بوقت أطول عن المتغيرات الممزوجة في السلسلة النصية بإشارات + لتقوم بتعديلها.

 

للمزيد يمكنك القراءة حول ()join  

وحول ()formate وأيضًا حول الدالة ()print من خلال موسوعة حسوب

 

بالتوفيق...

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

شكرا على التوضيح أفادني هذا جدا :)

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن