دالة ()format في بايثون

19-01-23 أحمدُ عُبَيْد 1224 1

تقوم دالة ()format بتنسيق السلاسل المعقدة بشكل أكثر كفاءة. عن طريق وضع حقل بديل واحد أو أكثر داخل زوج من الأقواس المتعرجة {} في سلسلة واستدعاء القيمة التي نرغب في وضعها وربطها بالسلسلة.


طريقة صياغتها بهذا الشكل:

باستخدام قيمة واحدة.

{ }.format(value)

باستخدام عدة قيم.

{ } { } .format(value1, value2)

value : يمكن أن تكون عدداً صحيحاً أوعدداً عشرياً أو سلسلة أو أحرف أو حتى متغير.

قيمة الإرجاع: إرجاع سلسلة جديدة منسقة بالقيمة التي تم تمريرها كمعلمة في موضع الحقل بديل {} .

الأخطاء والاستثناءات: يحدث عندما تحتوي السلسلة على حقل بديل إضافي {} ، ولم نمرر أي قيمة له.


مثال:

# using format option in a simple string
#استخدام خيار التنسيق في سلسلة بسيطة
print(" {} learn Python " .format("Hamza"))
# value stored in a variable
#تخزين القيم في متغير
string = "You can learn {} and {} with Ahmed Obaid"
print(string.format("python", "django" ))
# formatting a string using a numeric constant
# تنسيق السلسلة باستخدام رقم صحيح
print("I am {} years old !".format(38))

سيكون الناتج:

Hamza learn Python
You can learn python and django with Ahmed Obaid
I am 38 years old !

ملحوظة: الحقول البديلة هي الاماكن التي سيتم تمرير القيم لها والتي تكون بين الأقواس المتعرجة {} .  

في المثال التالي سنقوم بإستخدام عدة قيم لعدة عدة حقول بديلة.

مثال:

string = "I am {}, I will present on this site courses in {}, {}, and {}"
print(string.format("ahmed obaid","python", "django", "Data science"))

سيكون الناتج:

I am ahmed obaid, I will present on this site courses in python, django, and Data science

اذا كان عدد القيم أكثر أو أقل من عدد الحقول البديلة سنحصل علي خطا IndexError.

مثال:

string = "I am {}, I will present on this site courses in {}, {}, and {}"
print(string.format("python", "django", "Data science"))

سنحصل علي هذا الخطأ:

Traceback (most recent call last):
File "./prog.py", line 3, in <module>
IndexError: Replacement index 3 out of range for positional args tuple

في المثال السابق كان عدد القيم ثلاثه وهي "python", "django", "Data science". وعدد الحقول البديلة المتاحة اربعة حقول لذلك حدث خطأ.

أيضاً يجب تعيين الحقول البديلة مع فهرس القيم بالترتيب مثل 0 ، 1 ، 2 ، 3… لاحظ المثال التالي

مثال:

string = "I am {} {}  "
print(string.format("Ahmed", "obaid"))
string = "I am {} {} "
print(string.format("obaid","Ahmed"))

سيكون الناتج:

I am Ahmed obaid  
I am obaid Ahmed

يمكنك ايضاً تمرير أرقام فهرس القيم بداخل أقواس الحقول البديلة. حيث ستكون بداية فهرس القيم هي رقم 0. 

مثال:

# قمنا بترتيب فهرس القيم مع الحقول البديلة بشكل صحيح
string = "I am {0} {1} "
print(string.format("Ahmed", "obaid"))
# قمنا هنا بتغيير ترتيب فهرس القيم مع الحقول البديلة
string = "I am {1} {0} "
print(string.format("Ahmed", "obaid"))
# قمنا بترتيب فهرس القيم مع الحقول البديلة بشكل صحيح
string = "I am {0}, I will present on this site courses in {1}, {2}, and {3}"
print(string.format("Ahmed obaid", "python", "django", "Data science"))
# قمنا هنا بتغيير ترتيب فهرس القيم مع الحقول البديلة
string = "I am {0}, I will present on this site courses in {3}, {1}, and {2}"
print(string.format("Ahmed obaid", "python", "django", "Data science"))

سيكون الناتج:

I am Ahmed obaid  
I am obaid Ahmed
I am Ahmed obaid, I will present on this site courses in python, django, and Data science
I am Ahmed obaid, I will present on this site courses in Data science, python, and django

مصادر خارجية:

الدوال المضمنة - وثائق بايثون الرسمية

أذا كان لديك أي اسئلة أو استفسارات اتركها في التعليقات



الكلمات الدلالية


بايثون أنواع البيانات في بايثون السلاسل في بايثون الدوال التي تتعامل مع السلاسل دالة ()format

شارك المقال