الكورس

Advertisements

تنسيق النصوص فى بايثون | Python String Formatting


سنناقش فى هذا الفصل تنسيق النصوص فى بايثون | Python String Formatting، ستتعرف على تنسيق النصوص وكيفية استخدامه، مع بعض الأمثلة التوضيحية.


 

تنسيق النصوص فى بايثون | Python String Formatting

 

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

  1. Old Style” بإستخدام operator الـ %.
  2. New Style” بإستخدام method الـ ()format.
  3. String Interpolation بإستخدام fStrings.

 

1. Old Style” String Formatting”

 

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

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

 

مثال بسيط للتوضيح:

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

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

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

name = "Hamed"
gender = "male"

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

 

2. New Style” String Formatting”

 

قدم الإصدار 3 من python طريقة جديدة للقيام بتنسيق الـ strings. تتم معالجة التنسيق الآن عن طريق method الـ ()format على كائن string.

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

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

print(msg.format(name)) # output = "Hello Hamed 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



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

×

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

[email protected]

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

Advertisements