؛

التنقل في المنتدى
تحتاج لتسجيل الدخول لإنشاء مشاركات أو مواضيع.

تعلَّم بايثون3 مِن مدارس w3-37Python String Formatting

تنسيق السلسلة في بيثون(String Formatting)
السلسلة هنا نشير بها إلى السلسلة النصِّيَّة(string).

للتأكد من عرض سلسلة كما هو متوقع ، يمكننا تنسيق النتيجة باستخدام الوظيفة format ().

الدالة format() الخاصة بتنسيق السلسلة
تسمح لك الوظيفة format() بتنسيق أجزاء مختارة من سلسلة.
في بعض الأحيان تُوجد أجزاء من النص لا تستطيع أن تتحكم فيها ، ربما تأتي من قاعدة بيانات أو من مُدْخَلات المستخدم؟
للتحكم في هذه القيم، أضف عناصر نائبة عنها (أقواس متعرِّجَة {}) في النص،
ثُم قم بتشغيل القيم من خلال الوظيفة format() :
مثال
أضف عنصرًا نائبًا(placeholder) حيث تريد عرض السِعْر:
price = 49
txt = "The price is {} dollars"
print(txt.format(price))

ستكون النتيجة:
The price is 49 dollars
جربها بنفسك مِن ملف string_formatting1.py

يمكنك إضافةْ مُعامِلات داخل الأقواس المتعرِّجة لتحديد كيفية تحويل القيمة:
مثال
قم بتنسيق السِعْر ليتم عرضه كرقم مع رقمين عشريين, أي رقمين بعد الفاصلة:
price = 49
txt = "The price is {:.2f} dollars"
print(txt.format(price))

ستكون النتيجة:
The price is 49.00 dollars
لاحِظ الصِفرَين بعد الفاصلة
جربها بنفسك مِن ملف string_formatting2.py
يمكنك الإطِّلاع على جميع أنواع التنسيقات التي يمكن أن تستخدمها مِن مرجع String format() :
https://www.w3schools.com/python/ref_string_format.asp

استخدام القيم المتعددة
إذا كنتَ تريد استخدام المزيد من القيم ، فما عليك سوى إضافة المزيد من القيم إلى الوظيفة format ():
print(txt.format(price, itemno, count))
وأضف المزيد من العناصر النائبة(placeholders) في السلسلة:
مثال
quantity = 3
itemno = 567
price = 49
myorder = "I want {} pieces of item number {} for {:.2f} dollars."
print(myorder.format(quantity, itemno, price))

ستكون النتيجة:
I want 3 pieces of item number 567 for 49.00 dollars.
جربها بنفسك مِن ملف string_formatting3.py

استخدام أرقام الموضع أو الفهرس(Index Numbers)
يمكنك استخدام أرقام الفهرس أو الموضع (رقم داخل الأقواس المتعرِّجَة {0}) للتأكد من وضع القيم في العناصر النائبة الصحيحة:
مثال
quantity = 3
itemno = 567
price = 49
myorder = "I want {0} pieces of item number {1} for {2:.2f} dollars."
print(myorder.format(quantity, itemno, price))

ستكون النتيجة:
I want 3 pieces of item number 567 for 49.00 dollars.
جربها بنفسك مِن ملف string_formatting4.py

أيضًا ، إذا كنتَ تريد الإشارة إلى نفس القيمة أكثر من مرة ، فاستخدم رقم الفهرس:
مثال
age = 36
name = "John"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))

ستكون النتيجة:
His name is John. John is 36 years old.
جربها بنفسك مِن ملف string_formatting5.py

الفهارس المسماةْ(Named Indexes)
و نعني بها جعل إسم للموضع بدل الرقم.
و هكذا يمكنك أيضًا استخدام الفهارس المسماة عن طريق إدخال اسم داخل الأقواس المتعرِّجَة {carname}،
ولكن بعد ذلك يجب عليك استخدام الأسماء عند تمرير قيم المعامِلات txt.format(carname = "Ford"):
مثال
myorder = "I have a {carname}, it is a {model}."
print(myorder.format(carname = "Ford", model = "Mustang"))

ستكون النتيجة:
I have a Ford, it is a Mustang.
جربها بنفسك مِن ملف string_formatting6.py
الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/qi02zvggm1oh5hl/37Python%20String%20Formatting.zip?dl=1

Skip to content