الكورس

Advertisements

Python String Formatting


💡 للتأكد من عرض الـ string كما هو متوقع، يمكننا تنسيق النتيجة باستخدام عدة طرق:

  1. “Old Style” بإستخدام operator الـ %.
  2. “New Style” بإستخدام method الـ ()format.
  3. String Interpolation بإستخدام f-Strings.
  4. Template Strings (مكتبة).

 

1. Old Style” String Formatting”

 

تحتوي الـ strings في Python على عملية built-in فريدة يمكن الوصول إليها باستخدام عامل [ % ].

يتيح لك هذا الإجراء تنسيق موضعي بسيط بسهولة بالغة.

 

مثال للتوضيح:

name = "Osama"
print('Hello, %s' % name) output = "Hello, Osama"

إستخدم محدد تنسيق s% هنا لإخبار Python بمكان استبدال قيمة الاسم ، الممثلة كـ string.

💡 يتغير بناء جملة تنسيق السلسلة “old style” قليلاً إذا كنت تريد إجراء استبدالات متعددة في string واحدة. نظرًا لأن عامل % يأخذ argument واحدة فقط، كالتالى:

name    = "Osama"
gender  = "male"

print('Hello, %s & your age is %s' % (name, gender)) output = "Hello, Osama & your age is male"

 

2. New Style” String Formatting”

 

قدم الإصدار 3 من python طريقة جديدة للقيام بتنسيق الـ strings والتي تم أيضًا إرجاعها لاحقًا إلى Python 2.7.

تتم معالجة التنسيق الآن عن طريق method الـ ()format على كائن string.

يمكنك استخدام الـ ()format  للقيام بتنسيق موضعي بسيط ، تمامًا كما تفعل مع تنسيق “old style”:

name = "Osama"
msg  = "Hello {} in our website!"

print(msg.format(name)) # output = "Hello Osama in our website!"

💡 يمكنك إضافة parameters داخل الأقواس المتعرجة لتحديد كيفية تحويل القيمة:

age = 20 

msg = "Your age is {:d}" # {:d} for Decimal format


print(msg.format(age)) # output = "Your age is 20"

💡 إذا كنت تريد استخدام المزيد من القيم ، فما عليك سوى إضافة المزيد من القيم إلى method الـ ()format:

name = "Mohamed"
age  = 20 

msg = "Your name is {} & your age is {}" 

print(msg.format(name, age)) # output = "Your name is Mohamed & your age is 20"

💡 يمكنك استخدام أرقام الـ index (رقم داخل الأقواس المتعرجة {0}) للتأكد من وضع القيم في العناصر النائبة الصحيحة:

name = "Mohamed" # index 0
age  = 20 # index 1
mail = "[email protected]" # index 3

msg = "Your name is {0} & your mail is {2} & your age is {1}" 

print(msg.format(name, age, mail)) # output = "Your name is Mohamed & your mail is [email protected] & your age is 20"

💡 يمكنك أيضًا استخدام الـ indexes المسماة عن طريق إدخال اسم داخل الأقواس المتعرجة {username} ، ولكن يجب عليك بعد ذلك استخدام الأسماء عند تمرير قيم الـ parameters، كالتالى:

name = "Mohamed"
mail = "[email protected]"

userinfo = "Your name is {name} & your mail is {mail}" 

print(userinfo.format(name = "mohamed", mail = "[email protected]")) # output = "Your name is Mohamed & your mail is [email protected]"

 

3. String Interpolation | f-Strings

 

أضاف الإصدار Python 3.6 منهجًا جديدًا لتنسيق الـ string  يسمى formatted string literals (حرفية السلسلة المنسقة) أو “f-string“.

تتيح لك هذه الطريقة الجديدة لتنسيق الـ strings استخدام تعبيرات Python الـ built-in داخل ثوابت الـ string.

مثال للتوضيح:

name = "Mohamed"

print(f"Your name is {name}") # output = "Your name is Mohamed"

💡 فى المثال السابق، فإن يسبق الـ string حرف “f” ، ثم يأتى الـ strings ومن هنا يأتي اسم “f-strings“.

يمكنك القيام بعملية حسابية مضمنة معها، كالتالى:

num1 = 3
num2 = 4

print(f"Total three & four is {num1 + num2}") # output = Total three & four is 7

 

4. Template Strings 

 

هناك أداة أخرى لتنسيق الـ strings في Python وهى عن طريق الـ Template strings.

إنها آلية أبسط وأقل قوة، ولكن في بعض الحالات يمكنك الحاجه إليها.

 

مثال للتوضيح: 

from string import Template

name = "Osama"
x = Template('Hello $name!')
x.substitute(name=name) # output = 'Hello Osama!'

 

💡 الزتونة

 

  • للتأكد من عرض الـ string كما هو متوقع، يمكننا تنسيق النتيجة باستخدام 4 طرق:

    1. “Old Style” بإستخدام operator الـ % : built-in فريدة يمكن الوصول إليها باستخدام عامل [ % ].
    2. “New Style” بإستخدام method الـ ()format :تتم معالجة التنسيق عن طريق method الـ ()format على كائن string.
    3. String Interpolation بإستخدام f-Strings: تتيح لك هذه الطريقة الجديدة لتنسيق الـ strings استخدام تعبيرات Python الـ built-in داخل ثوابت الـ string. 
    4. Template Strings (مكتبة): إنها آلية أبسط وأقل قوة، ولكن في بعض الحالات يمكنك الحاجه.

 

 



الإبلاغ عن خطأ

×

إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements