فيما يلي وصف لعملية السلاسل التي تحتوي على أسطر جديدة في بايثون.
- إنشاء سلسلة تحتوي على أسطر جديدة ، إخراج الطباعة (عرض)
- حرف سطر جديد (إما أو كلاهما من CR و LF حسب النظام)
\n
(LF) ،\r\n
(CR + LF) - اقتباس ثلاثي
''
و"""
- إذا كنت تريد مسافة بادئة
- حرف سطر جديد (إما أو كلاهما من CR و LF حسب النظام)
- اربط قائمة من السلاسل بأسطر جديدة
- تقسيم السلسلة إلى أسطر جديدة وقائمة:
splitlines()
- إزالة واستبدال رموز تغذية الخط
- إخراج الطباعة دون زائدة السطر الجديد
إنشاء سلسلة تحتوي على أسطر جديدة ، إخراج الطباعة
حرف سطر جديد (إما أو كلاهما من CR و LF حسب النظام)\n(LF) ،\r\n(CR + LF)
سيؤدي إدخال رمز تغذية سطر داخل سلسلة إلى ظهور سطر جديد.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
يمكن استخدام رموز تغذية الخط بالطرق التالية. تسمح لك بعض برامج التحرير بتحديد كود فاصل سطر.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR + LF) |
اقتباس ثلاثي''و"""
إذا تم استخدام علامات الاقتباس الثلاثية لإحاطة السلسلة ، فستكون سلسلة كما هي ، بما في ذلك الأسطر الجديدة.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
إذا كنت تريد مسافة بادئة
علامات الاقتباس الثلاثية هي أيضًا مسافات في سلسلة ، لذلك إذا حاولت الكتابة بدقة في التعليمات البرمجية والمسافة البادئة كما هو موضح أدناه ، فسيتم إدراج مسافات غير ضرورية.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
باستخدام الشرطة المائلة للخلف لتجاهل الأسطر الجديدة في الكود وجعلها سطرًا متواصلًا ، يمكن كتابتها على النحو التالي
قم بإحاطة كل سطر بـ “” أو “” وأضف حرف سطر جديد ← n في نهاية الجملة.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
هنا ، الصيغة هي أن سلسلة حرفية متتالية متسلسلة. راجع المقالة التالية للحصول على التفاصيل.
- مقالات ذات صلة:ربط السلاسل وضمها في بايثون (+ عامل ، انضمام ، إلخ.)
إذا كنت تريد إضافة مسافة بادئة في سلسلة ، ما عليك سوى إضافة مسافة إلى السلسلة في كل سطر.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
بالإضافة إلى ذلك ، نظرًا لأنه يمكن عمل فواصل الأسطر بحرية بين قوسين ، يمكن كتابة ما يلي باستخدام الأقواس بدلاً من الشرطة المائلة للخلف.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
إذا كنت تريد فقط محاذاة بداية السطر ، فما عليك سوى إضافة شرطة مائلة للخلف إلى السطر الأول من علامات الاقتباس الثلاثية.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
اربط قائمة من السلاسل بأسطر جديدة
يمكن استخدام طريقة السلسلة Join () لربط قائمة السلاسل في سلسلة واحدة.
- مقالات ذات صلة:ربط السلاسل وضمها في بايثون (+ عامل ، انضمام ، إلخ.)
عندما يتم استدعاء Join () من حرف سطر جديد ، يتم ربط كل عنصر سلسلة بسطر جديد.
l = ['Line1', 'Line2', 'Line3']
s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'
كما في المثال أعلاه ، يمكن استخدام الوظيفة المدمجة repr () للتحقق من السلاسل التي تحتوي على أكواد الأسطر الجديدة كما هي.
تقسيم السلسلة إلى أسطر جديدة وقائمة:splitlines()
يمكن استخدام طريقة السلسلة splitlines () لتقسيم سلسلة إلى قائمة بأسطر جديدة.
ستقسم خطوط الانقسام () أيًا من أكواد فواصل الأسطر التالية. يتم أيضًا تقسيم علامات التبويب العمودية وفواصل الصفحات.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
إزالة واستبدال رموز تغذية الخط
من خلال الجمع بين الأسطر المنقسمة () والضم () ، يمكن إزالة (إزالة) أكواد الأسطر الجديدة من سلسلة تحتوي على أسطر جديدة أو استبدالها بسلاسل أخرى.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
من الممكن أيضًا تغيير الدُفعة لرموز تغذية الخط. حتى إذا كانت أكواد فواصل الأسطر مختلطة أو غير معروفة ، فيمكن تقسيمها باستخدام خطوط الانقسام () ثم ربطها برمز كسر الأسطر المطلوب.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
كما هو مذكور أعلاه ، ستقسم Splitlines () إما كود سطر جديد ، لذلك لا داعي للقلق بشكل خاص بشأن أكواد الأسطر الجديدة في حالة الطريقة التي تجمع بين Splitlines () و Join ().
إذا كان كود السطر الجديد واضحًا ، فيمكن أيضًا استبداله بطريقة replace () ، التي تحل محل السلسلة.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
ومع ذلك ، لاحظ أنه لن يعمل إذا كان يحتوي على رموز تغذية سطور مختلفة عما هو متوقع.
s = 'Line1\nLine2\r\nLine3'
s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1\nLine2,Line3'
من الممكن استبدال رموز الأسطر الجديدة المتعددة عن طريق تكرار replace () ، لكنها لن تعمل إذا كان الطلب خاطئًا لأن “\ r \ n” يحتوي على “\ n”. الطريقة التي تجمع بين خطوط الانقسام () والجمع () الموصوفة أعلاه أكثر أمانًا لأنه لا داعي للقلق بشأن أكواد تغذية الأسطر.
s = 'Line1\nLine2\r\nLine3'
print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3
s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
استخدم طريقة rstrip () لإزالة أكواد تغذية الأسطر في نهاية الجملة. rstrip () هي طريقة لإزالة أحرف المسافات البيضاء (بما في ذلك تغذية الأسطر) في الطرف الأيمن من السلسلة.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
إخراج الطباعة دون زائدة السطر الجديد
تضيف وظيفة print () سطرًا جديدًا لاحقًا بشكل افتراضي. لذلك ، إذا تم تنفيذ print () على التوالي ، فسيتم عرض كل نتيجة إخراج في سطر جديد.
print('a')
print('b')
print('c')
# a
# b
# c
هذا لأن القيمة الافتراضية لنهاية الوسيطة print () ، والتي تحدد السلسلة المراد إضافتها في النهاية ، هي رمز السطر الجديد.
إذا كنت لا تريد سطرًا جديدًا في النهاية ، فقم فقط بتعيين نهاية الوسيطة على سلسلة فارغة ، وسيتم إخراج الإخراج بدون سطر جديد في النهاية.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
يمكن أن تكون نهاية الوسيطة أي سلسلة.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
ومع ذلك ، إذا كنت تريد ربط السلاسل للإخراج ، فمن الأسهل ربط السلاسل الأصلية بدلاً من تحديدها في وسيطة نهاية print (). انظر المقال التالي.
- مقالات ذات صلة:ربط السلاسل وضمها في بايثون (+ عامل ، انضمام ، إلخ.)