التابع str.format()‎ في بايثون

من موسوعة حسوب
< Python‏ | str
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

يجري هذا التابع عمليات التنسيق على السلسلة النصية بواسطة معاملات موضعية أو مفتاحية.

البنية العامة

x.format()

القيمة المعادة

يجري هذا التابع عمليات التنسيق على السلسلة النصية، ويمكن للسلسلة النصية أن تحتوي على حروف اعتيادية أو حقول الاستبدال المحاطة بالأقواس المعقوفة {}. يمكن لكل حقل استبدال أن يحتوي على الفهرس الرقمي التابع للوسيط الموضعي، أو اسم الوسيط المفتاحي.

يعيد التابع نسخة من السلسلة النصية حيث تبدّل حقول الاستبدال بقيمة السلسلة النصية الخاصّة بالوسيط المقابل.

أمثلة

تعرض الأمثلة التالية طرق استخدام التابع format() لتنفيذ العديد من العمليات البسيطة والمعقدة:

  • الوصول إلى المعاملات بواسطة الموقع:
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c')  # 3.1+ فقط
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{2}, {1}, {0}'.format(*'abc')      # فك تحزيم تسلسل المعاملات
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad')   # يمكن تكرار مواقع المعاملات
'abracadabra'
  • الوصول إلى المعاملات بواسطة الاسم:
>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
'Coordinates: 37.24N, -115.81W'
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'
  • الوصول إلى خصائص المعاملات:
>>> c = 3-5j
>>> ('The complex number {0} is formed from the real part {0.real} '
...  'and the imaginary part {0.imag}.').format(c)
'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.'
>>> class Point:
...     def __init__(self, x, y):
...         self.x, self.y = x, y
...     def __str__(self):
...         return 'Point({self.x}, {self.y})'.format(self=self)
...
>>> str(Point(4, 2))
'Point(4, 2)'
  • الوصول إلى العناصر التابعة للمعاملات:
>>> coord = (3, 5)
>>> 'X: {0[0]};  Y: {0[1]}'.format(coord)
'X: 3;  Y: 5'
  • إزاحة النصوص وتعيين عرض السلسلة النصية:
>>> '{:<30}'.format('left aligned')
'left aligned                  '
>>> '{:>30}'.format('right aligned')
'                 right aligned'
>>> '{:^30}'.format('centered')
'           centered           '
>>> '{:*^30}'.format('centered')  # use '*' as a fill char
'***********centered***********'
  • استخدام الرمز (,) كفاصلة عشرية:
>>> '{:,}'.format(1234567890)
'1,234,567,890'
  • عرض النتيجة كنسبة مئوية:
>>> points = 19
>>> total = 22
>>> 'Correct answers: {:.2%}'.format(points/total)
'Correct answers: 86.36%'
  • استخدام طريقة تنسيق خاصة بنوع معين من أنواع البيانات:
>>> import datetime
>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2010-07-04 12:15:58'
  • استخدام المعاملات المتداخلة وبعض الأمثلة المعقدة:
>>> for align, text in zip('<^>', ['left', 'center', 'right']):
...     '{0:{fill}{align}16}'.format(text, fill=align, align=align)
...
'left<<<<<<<<<<<<'
'^^^^^center^^^^^'
'>>>>>>>>>>>right'
>>>
>>> octets = [192, 168, 0, 1]
>>> '{:02X}{:02X}{:02X}{:02X}'.format(*octets)
'C0A80001'
>>> int(_, 16)
3232235521
>>>
>>> width = 5
>>> for num in range(5,12): 
...     for base in 'dXob':
...         print('{0:{width}{base}}'.format(num, base=base, width=width), end=' ')
...     print()
...
    5     5     5   101
    6     6     6   110
    7     7     7   111
    8     8    10  1000
    9     9    11  1001
   10     A    12  1010
   11     B    13  1011

انظر أيضًا

  • السلاسل النصية في بايثون.
  • التابع str.capitalize()‎: إعادة نسخة من السلسلة النصية مع تحويل الحرف الأول إلى حرف كبير، والأحرف الباقية إلى أحرف صغيرة.
  • التابع str.casefold()‎: إعادة السلسلة النصية بحالة casefolded، ويمكن استخدام هذا النوع من السلاسل لإجراء المقارنة دون الاعتماد على حالة الأحرف.
  • التابع str.center()‎: إعادة أحرف السلسلة النصية مزاحة نحو الوسط ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.count()‎: إعادة عدد مرات ظهور سلسلة نصية فرعية ضمن السلسلة الأصلية.
  • التابع str.encode()‎: إعادة نسخة مرمّزة من السلسلة النصية على هيئة بايتات.
  • التابع str.endswith()‎: التحقق من وجود سلسلة نصية فرعية في نهاية السلسلة النصية الأصلية.
  • التابع str.expandtabs()‎: إعادة نسخة من السلسلة النصية بعد تحويل جميع علامات الجدولة إلى مسافة بيضاء واحدة أو أكثر.
  • التابع str.find()‎: إعادة أدنى قيمة للفهرس في السلسلة النصية والذي تكون السلسلة الفرعية موجودة فيه ضمن الجزء المقتطع من السلسلة.
  • التابع str.format_map()‎: إجراء عمليات التنسيق على السلسلة النصية بواسطة قاموس.
  • التابع str.index()‎: إجراء نفس وظيفة الدالة str.find()‎.
  • التابع str.isalnum()‎: التحقق ممّا إذا كانت السلسلة النصية تضمّ حروفًا وأرقامًا وأنّها تضمّ حرفًا واحدًا على الأقل.
  • التابع str.isalpha()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من الحروف فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isdecimal()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد العشرية فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isdigit()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف الأعداد (digits) فقط، وأنّ فيها حرفًا واحدًا على الأقل.
  • التابع str.isidentifier()‎: التحقق ممّا إذا كانت السلسلة النصية تتضمّن معرّفًا صحيحًا (identifier) في لغة بايثون.
  • التابع str.islower()‎: التحقق ممّا إذا كانت حروف السلسلة النصية حروفًا صغيرة (lowercase).
  • التابع str.isnumeric()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا عددية، وأنّ هناك حرفًا واحدًا على الأقل في تلك السلسلة.
  • التابع str.isprintable()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية قابلة للطباعة أو أن السلسلة النصية فارغة.
  • التابع str.isspace()‎: التحقق ممّا إذا كانت السلسلة النصية مكوّنة من حروف مسافات بيضاء فقط وأنّ في السلسلة حرفًا واحدًا على الأقل.
  • التابع str.istitle()‎: التحقق ممّا إذا كانت أوائل الكلمات في السلسلة النصية حروفًا كبيرة (titlecased).
  • التابع str.isupper()‎: التحقق ممّا إذا كانت جميع الحروف في السلسلة النصية حروفًا كبيرة.
  • التابع str.join()‎: إعادة السلسلة النصية الناتجة عن ربط السلاسل النصية التابعة لكائن قابل للتكرار (iterable).
  • التابع str.ljust()‎: إعادة أحرف السلسلة النصية مزاحة نحو اليسار ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.lower()‎: تحويل جميع الحروف في السلسلة النصية إلى حروف صغيرة.
  • التابع str.lstrip()‎: حذف الحروف التي يحدّدها المستخدم من بداية السلسلة النصية.
  • التابع str.maketrans()‎: إعادة جدول تحويل يمكن استخدامه بواسطة الدالة str.translate().
  • التابع str.partition()‎: تقسيم السلسلة النصية عند أول ظهور للقيمة التي يحدّدها المستخدم.
  • التابع str.replace()‎: تبديل هذه الدالة العبارة التي يختارها المستخدم - مهما تكرّرت في السلسلة النصية - إلى القيمة الجديدة التي يحدّدها.
  • التابع str.rfind()‎: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
  • التابع str.rindex()‎: إعادة أعلى قيمة للفهرس في السلسلة النصية حيث تجد فيه السلسلة النصية الفرعية.
  • التابع str.rjust()‎: إعادى أحرف السلسلة النصية مزاحة نحو اليمين ضمن سلسلة نصّية ذات طول محدّد.
  • التابع str.rpartition()‎: تقسيم السلسلة النصية عند آخر ظهور للقيمة التي يحدّدها المستخدم.
  • التابع str.rsplit()‎: تحويل السلسلة النصية من جهة اليمين إلى قائمة من السلاسل النصية بالاعتماد على الفاصل الذي يحدّده المستخدم.
  • التابع str.rstrip()‎: حذف الحروف التي يحدّدها المستخدم من نهاية السلسلة النصية.
  • التابع str.split()‎: تقسيم السلسلة النصية إلى قائمة من السلاسل النصية بالاعتماد على فاصل محدّد.
  • التابع str.splitlines()‎: تقسيم السلسلة النصية إلى قائمة من الأسطر.
  • التابع str.startswith()‎: التحقق من أنّ السلسلة النصية تبدأ بالقيمة التي يحدّدها المستخدم.
  • التابع str.strip()‎: حذف الحروف المحدّدة من قبل المستخدم من نهاية وبداية السلسلة النصية.
  • التابع str.swapcase()‎: قلب حالة الحروف في السلسلة النصية.
  • التابع str.title()‎: تحويل أوائل الكلمات في السلسلة النصية إلى أحرف كبيرة (Title Case).
  • التابع str.translate()‎: إعادة الحروف في السلسلة النصية بالاعتماد على جدول التحويل (translation table).
  • التابع str.upper()‎: تحويل الحروف في السلسلة النصية إلى حروف كبيرة.
  • التابع str.zfill()‎: إضافة أصفار من الترميز ASCII إلى يسار السلسلة النصية لتصبح السلسلة بالطول المحدد من قبل المستخدم.

مصادر