اذهب إلى المحتوى

السؤال

نشر

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

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

ولا تطبع هكذا

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

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

Recommended Posts

  • 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 من خلال موسوعة حسوب

 

بالتوفيق...

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...