ខាងក្រោមនេះពិពណ៌នាអំពីប្រតិបត្តិការនៃខ្សែអក្សរដែលមានបន្ទាត់ថ្មីនៅក្នុង Python ។
- បង្កើតខ្សែអក្សរដែលមានបន្ទាត់ថ្មី លទ្ធផលបោះពុម្ព (បង្ហាញ)
- តួអក្សរបន្ទាត់ថ្មី (ឬទាំងពីរនៃ 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
#
ដោយប្រើ backslash ដើម្បីមិនអើពើបន្ទាត់ថ្មីនៅក្នុងកូដ ហើយធ្វើឱ្យវាក្លាយជាបន្ទាត់បន្ត វាអាចត្រូវបានសរសេរដូចខាងក្រោម
ភ្ជាប់បន្ទាត់នីមួយៗដោយ ” ឬ “” ហើយបន្ថែមតួអក្សរបន្ទាត់ថ្មី ←n នៅចុងបញ្ចប់នៃប្រយោគ។
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
នៅទីនេះ វាក្យសម្ព័ន្ធគឺថាព្យញ្ជនៈខ្សែអក្សរបន្តបន្ទាប់ត្រូវបានភ្ជាប់គ្នា។ សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានលម្អិត។
- អត្ថបទដែលទាក់ទង:ការភ្ជាប់ និងភ្ជាប់ខ្សែអក្សរនៅក្នុង Python (+ operator, join, etc.)
ប្រសិនបើអ្នកចង់បន្ថែមការចូលបន្ទាត់ក្នុងខ្សែអក្សរ គ្រាន់តែបន្ថែមចន្លោះទៅខ្សែអក្សរក្នុងបន្ទាត់នីមួយៗ។
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
ប្រសិនបើអ្នកគ្រាន់តែចង់តម្រឹមការចាប់ផ្តើមនៃបន្ទាត់មួយ គ្រាន់តែបន្ថែម backslash ទៅបន្ទាត់ដំបូងនៃសម្រង់បី។
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
ភ្ជាប់បញ្ជីខ្សែជាមួយបន្ទាត់ថ្មី។
វិធីសាស្ត្រខ្សែអក្សរ join() អាចត្រូវបានប្រើដើម្បីភ្ជាប់បញ្ជីខ្សែអក្សរទៅក្នុងខ្សែតែមួយ។
- អត្ថបទដែលទាក់ទង:ការភ្ជាប់ និងភ្ជាប់ខ្សែអក្សរនៅក្នុង Python (+ operator, join, etc.)
នៅពេលដែល 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() អាចត្រូវបានប្រើដើម្បីបំបែកខ្សែអក្សរទៅក្នុងបញ្ជីបន្ទាត់ថ្មី។
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
ការផ្លាស់ប្តូរជាក្រុមនៃកូដចំណីបន្ទាត់ក៏អាចធ្វើបានដែរ។ ទោះបីជាលេខកូដបំបែកបន្ទាត់ត្រូវបានលាយបញ្ចូលគ្នា ឬមិនស្គាល់ក៏ដោយ ពួកវាអាចត្រូវបានបំបែកដោយប្រើ splitlines() ហើយបន្ទាប់មកភ្ជាប់ជាមួយកូដបំបែកបន្ទាត់ដែលចង់បាន។
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
ដូចដែលបានរៀបរាប់ខាងលើ splitlines() នឹងបំបែកកូដបន្ទាត់ថ្មីណាមួយ ដូច្នេះមិនចាំបាច់ព្រួយបារម្ភជាពិសេសអំពីកូដបន្ទាត់ថ្មីនៅក្នុងករណីនៃវិធីសាស្រ្តរួមបញ្ចូលគ្នានូវ splitlines() និង join() នោះទេ។
ប្រសិនបើកូដបន្ទាត់ថ្មីមានភាពច្បាស់លាស់ វាក៏អាចត្រូវបានជំនួសដោយវិធីជំនួស() ដែលជំនួសខ្សែអក្សរ។
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'
វាអាចទៅរួចក្នុងការជំនួសលេខកូដបន្ទាត់ថ្មីជាច្រើនដោយធ្វើម្តងទៀតជំនួស() ប៉ុន្តែវានឹងមិនដំណើរការទេប្រសិនបើការបញ្ជាទិញខុស ពីព្រោះ “\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('a', end='')
print('b', end='')
print('c', end='')
# abc
ចុងបញ្ចប់នៃអាគុយម៉ង់អាចជាខ្សែអក្សរណាមួយ។
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើអ្នកចង់ភ្ជាប់ខ្សែអក្សរសម្រាប់លទ្ធផល វាជាការងាយស្រួលក្នុងការភ្ជាប់ខ្សែអក្សរដើមជាជាងបញ្ជាក់ពួកវានៅក្នុងអាគុយម៉ង់ចុងក្រោយនៃ print()។ សូមមើលអត្ថបទខាងក្រោម។
- អត្ថបទដែលទាក់ទង:ការភ្ជាប់ និងភ្ជាប់ខ្សែអក្សរនៅក្នុង Python (+ operator, join, etc.)