تنسيق السلسلة في Python
بالإضافة إلى تحويل النص وإجراء العمليات الأساسية، مثل المطابقة والبحث، من الضروري تنسيق النص عند تقديم المعلومات. أبسط طريقة لتقديم معلومات نصية مع Python هي استخدام الوظيفة print()
. ستجد أنه من المهم الحصول على المعلومات في المتغيرات وبنيات البيانات الأخرى في سلاسل التي يمكن أن يستخدمها print()
.
في هذه الوحدة، ستتعلم عدة طرق صالحة لتضمين قيم متغيرة في النص باستخدام Python.
تنسيق علامة النسبة المئوية (%
)
العنصر النائب للمتغير في السلسلة هو %s
. بعد السلسلة، استخدم حرفا آخر %
متبوعا باسم المتغير. يوضح المثال التالي كيفية التنسيق باستخدام %
الحرف :
mass_percentage = "1/6"
print("On the Moon, you would weigh about %s of your weight on Earth." % mass_percentage)
الإخراج: On the Moon, you would weigh about 1/6 of your weight on Earth.
يؤدي استخدام قيم متعددة إلى تغيير بناء الجملة، لأنه يتطلب وجود أقواس لإحاطة المتغيرات التي يتم تمريرها إلى الداخل:
print("""Both sides of the %s get the same amount of sunlight, but only one side is seen from %s because the %s rotates around its own axis when it orbits %s.""" % ("Moon", "Earth", "Moon", "Earth"))
الإخراج: Both sides of the Moon get the same amount of sunlight, but only one side is seen from Earth because the Moon rotates around its own axis when it orbits Earth.
تلميح
على الرغم من أن هذا الأسلوب لا يزال طريقة صالحة لتنسيق سلاسل، إلا أنها قد تؤدي إلى حدوث أخطاء وتقليل الوضوح في التعليمات البرمجية عندما تتعامل مع متغيرات متعددة. سيكون أي من خياري التنسيق الآخرين الموصوفين في هذه الوحدة أكثر ملاءمة لهذا الغرض.
الأسلوب format()
يستخدم .format()
الأسلوب الأقواس ({}
) كعناصر نائبة ضمن سلسلة، ويستخدم تعيين متغير لاستبدال النص.
mass_percentage = "1/6"
print("On the Moon, you would weigh about {} of your weight on Earth.".format(mass_percentage))
الإخراج: On the Moon, you would weigh about 1/6 of your weight on Earth.
لا تحتاج إلى تعيين متغيرات متكررة عدة مرات، مما يجعلها أقل إسهابًا لأنه يلزم تعيين عدد أقل من المتغيرات:
mass_percentage = "1/6"
print("""You are lighter on the {0}, because on the {0} you would weigh about {1} of your weight on Earth.""".format("Moon", mass_percentage))
الإخراج: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.
بدلا من الأقواس الفارغة، يكون البديل هو استخدام الأرقام. يعني {0}
استخدام الوسيطة الأولى (فهرس الصفر) لـ .format()
، والتي تكون في هذه الحالة Moon
. للتكرار البسيط يعمل {0}
بشكل جيد، لكنه يقلل من قابلية القراءة. لتحسين قابلية القراءة، استخدم وسيطات الكلمة الأساسية في .format()
ثم قم بالرجوع إلى نفس الوسيطات داخل الأقواس:
mass_percentage = "1/6"
print("""You are lighter on the {moon}, because on the {moon} you would weigh about {mass} of your weight on Earth.""".format(moon="Moon", mass=mass_percentage))
الإخراج: You are lighter on the Moon, because on the Moon you would weigh about 1/6 of your weight on Earth.
حول f-strings
اعتبارًا من الإصدار 3.6 من Python، فمن الممكن استخدام f-strings. تبدو هذه السلاسل مثل القوالب وتستخدم أسماء المتغيرات من التعليمات البرمجية الخاصة بك. استخدام f-strings في المثال السابق سيبدو كما يلي:
print(f"On the Moon, you would weigh about {mass_percentage} of your weight on Earth.")
الإخراج: On the Moon, you would weigh about 1/6 of your weight on Earth.
تدخل المتغيرات داخل أقواس، ويجب أن تستخدم f
السلسلة البادئة.
بصرف النظر عن أن f-strings أقل إسهابًا من أي خيار تنسيق آخر، فمن الممكن استخدام التعبيرات داخل الأقواس. يمكن أن تكون هذه التعبيرات وظائف أو عمليات مباشرة. على سبيل المثال، إذا كنت تريد تمثيل 1/6
القيمة كنسبة مئوية مع موضع عشري واحد، يمكنك استخدام round()
الوظيفة مباشرة:
print(round(100/6, 1))
الإخراج: 16.7
باستخدام f-strings، لا تحتاج إلى تعيين قيمة لمتغير مسبقًا:
print(f"On the Moon, you would weigh about {round(100/6, 1)}% of your weight on Earth.")
الإخراج: On the Moon, you would weigh about 16.7% of your weight on Earth.
لا يتطلب استخدام تعبير استدعاء دالة. أي من أساليب السلسلة صالح أيضًا. على سبيل المثال، يمكن أن تفرض السلسلة غلافا معينا لإنشاء عنوان:
subject = "interesting facts about the moon"
heading = f"{subject.title()}"
print(heading)
الإخراج: Interesting Facts About The Moon