سلاسل f في Python – PEP 498 – تفاعل السلسلة الحرفية الحرفية

سلاسل f-strings أو السلاسل المهيأة هي الطريقة الجديدة لتهيئة السلاسل. تمت إضافة هذه الميزة في Python 3.6 بموجب PEP-498. يُطلق عليها أيضًا تفريق سلسلة حرفية.

لماذا نحتاج إلى f-strings؟

توفر Python طرقًا مختلفة لتهيئة السلسلة. دعنا نلقي نظرة سريعة عليها وعلى المشاكل التي تواجهها.

  • التهيئة بنسبة مئوية – رائعة للتهيئة البسيطة ولكن الدعم المحدود لـ السلاسل، الأعداد الصحيحة، والأعداد العشرية فقط. لا يمكننا استخدامها مع الكائنات.

  • سلاسل القالب – بسيطة للغاية. تعمل سلاسل القالب بالوسائط المفتاحية مثل القاموس فقط. ليس لنا السماح بدعوة أي دالة ويجب أن تكون الوسائط سلاسل.
  • تنسيق السلسلة() – تم إدخال وظيفة تنسيق السلسلة في لغة Python للتغلب على مشاكل وميزات قليلة لتنسيق النصوص بنسبة النسبة المئوية وسلاسل القوالب. ومع ذلك، فهي كثيرة الكلام. دعونا نلقي نظرة على طولها باستخدام مثال بسيط.

    >>> age = 4 * 10
    >>> 'عمري هو {age}.'.format(age=age)
    'عمري هو 40.'
    

تعمل سلاسل f في Python بشكل تقريبي مماثل لوظيفة تنسيق() ولكنها تزيل كل التطويل الذي تتمتع به وظيفة تنسيق(). دعونا نرى كيف يمكننا تنسيق السلسلة أعلاه بسهولة باستخدام سلاسل f.

>>> f'My age is {age}'
'My age is 40.'

تم إدخال سلاسل f في Python لديها بنية بسيطة لتنسيق السلاسل. يتم تقييم التعبيرات أثناء التشغيل. إذا كنت تستخدم Python 3.6 أو إصدارًا أحدث، يجب عليك استخدام سلاسل f لجميع متطلبات تنسيق السلسلة الخاصة بك.

أمثلة على سلاسل f في Python

لنلقي نظرة على مثال بسيط على سلاسل f.

name = 'Pankaj'
age = 34

f_string = f'My Name is {name} and my age is {age}'

print(f_string)
print(F'My Name is {name} and my age is {age}')  # f and F are same

name = 'David'
age = 40

# تم تقييم f_string بالفعل ولن يتغير الآن
print(f_string)

الإخراج:

My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34

تقوم Python بتنفيذ البيانات تلو الأخرى وبمجرد تقييم تعابير سلسلة f ، لا يتغير حتى لو تغيرت قيمة التعبير. ولهذا السبب في مقاطع الكود أعلاه ، تظل قيمة f_string كما هي حتى بعد تغيير متغير ‘name’ و ‘age’ في الجزء الأخير من البرنامج.

1. سلاسل f مع تعابير وتحويلات

يمكننا استخدام سلاسل f لتحويل datetime إلى تنسيق معين. يمكننا أيضًا تشغيل تعابير رياضية في سلاسل f.

from datetime import datetime

name = 'David'
age = 40
d = datetime.now()

print(f'Age after five years will be {age+5}')  # age = 40
print(f'Name with quotes = {name!r}')  # name = David
print(f'Default Formatted Date = {d}')
print(f'Custom Formatted Date = {d:%m/%d/%Y}')

الإخراج:

Age after five years will be 45
Name with quotes = 'David'
Default Formatted Date = 2018-10-10 11:47:12.818831
Custom Formatted Date = 10/10/2018

2. تدعم سلاسل f السلاسل النصية الخام

يمكننا إنشاء سلاسل نصية خام باستخدام سلاسل f أيضًا.

print(f'Default Formatted Date:\n{d}')
print(fr'Default Formatted Date:\n {d}')

الإخراج:

Default Formatted Date:
2018-10-10 11:47:12.818831
Default Formatted Date:\n 2018-10-10 11:47:12.818831

3. السلاسل f مع الكائنات والسمات

يمكننا الوصول أيضًا إلى سمات الكائن في السلاسل f.

class Employee:
    id = 0
    name = ''

    def __init__(self, i, n):
        self.id = i
        self.name = n

    def __str__(self):
        return f'E[id={self.id}, name={self.name}]'


emp = Employee(10, 'Pankaj')
print(emp)

print(f'Employee: {emp}\nName is {emp.name} and id is {emp.id}')

الإخراج:

E[id=10, name=Pankaj]
Employee: E[id=10, name=Pankaj]
Name is Pankaj and id is 10

4. السلاسل f تستدعي الوظائف

يمكننا استدعاء الوظائف في تنسيق السلاسل f أيضًا.

def add(x, y):
    return x + y


print(f'Sum(10,20) = {add(10, 20)}')

الإخراج: Sum(10,20) = 30

5. السلسلة f مع الفراغات البيضاء

إذا كانت هناك فراغات بيضاء في بداية أو نهاية التعبير، فإنها تُتجاهل. إذا كانت جزء السلسلة الحرفية يحتوي على فراغات بيضاء فإنها تُحتفظ بها.

>>> age = 4 * 20
>>> f'   Age = {  age   }  '
'   Age = 80  '

6. تعابير لامبدا مع السلاسل f

يمكننا استخدام تعابير لامبدا داخل تعابير السلاسل f أيضًا.

x = -20.45
print(f'Lambda Example: {(lambda x: abs(x)) (x)}')

print(f'Lambda Square Example: {(lambda x: pow(x, 2)) (5)}')

الإخراج:

Lambda Example: 20.45
Lambda Square Example: 25

7. أمثلة متنوعة لسلاسل f في Python

لنلقي نظرة على بعض الأمثلة المتنوعة لسلاسل f في Python.

print(f'{"quoted string"}')
print(f'{{ {4*10} }}')
print(f'{{{4*10}}}')

الناتج:

quoted string
{ 40 }
{40}

هذا كل شيء بالنسبة لسلاسل Python المهيأة أو المعروفة باسم f-strings.

يمكنك مراجعة السيناريو الكامل لـ Python والمزيد من أمثلة Python من مستودعنا على مستودع GitHub.

المرجع: PEP-498، التوثيق الرسمي

Source:
https://www.digitalocean.com/community/tutorials/python-f-strings-literal-string-interpolation