Ifuatayo inaelezea utendakazi wa kamba zilizo na laini mpya kwenye Python.
- Unda kamba iliyo na laini mpya, matokeo ya kuchapisha (onyesha)
- herufi mpya (ama au zote mbili za CR na LF kulingana na mfumo)
\n
(LF),\r\n
(CR+LF) - nukuu mara tatu
''
,"""
- Ikiwa unataka kupenyeza
- herufi mpya (ama au zote mbili za CR na LF kulingana na mfumo)
- Unganisha orodha ya mifuatano na mistari mipya
- Gawanya kamba katika laini mpya na orodha:
splitlines()
- Ondoa na ubadilishe misimbo ya mipasho ya laini
- Chapisha matokeo bila kufuata laini mpya
Unda mfuatano ulio na laini mpya, uchapishe matokeo
herufi mpya (ama au zote mbili za CR na LF kulingana na mfumo)\n(LF),\r\n(CR+LF)
Kuingiza msimbo wa mlisho wa mstari ndani ya mfuatano kutasababisha mstari mpya.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Misimbo ya mipasho ya laini inaweza kutumika kwa njia zifuatazo. Baadhi ya wahariri hukuruhusu kuchagua msimbo wa kuvunja mstari.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
nukuu mara tatu'',"""
Ikiwa nukuu tatu zitatumika kuambatanisha kamba, itakuwa ni mfuatano kama ulivyo, ikijumuisha mistari mipya.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Ikiwa unataka kupenyeza
Nukuu tatu pia ni nafasi katika mfuatano, kwa hivyo ukijaribu kuandika kwa uzuri kwa msimbo na ujongezaji kama inavyoonyeshwa hapa chini, nafasi zisizo za lazima zitawekwa.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Kwa kutumia backslash kupuuza laini mpya kwenye nambari na kuifanya kuwa mstari wa muendelezo, inaweza kuandikwa kama ifuatavyo.
Funga kila mstari kwa ” au “” na uongeze herufi mpya ←n mwishoni mwa sentensi.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
Hapa, syntax ni kwamba maandishi ya kamba mfululizo yameunganishwa. Tazama makala ifuatayo kwa maelezo zaidi.
- Makala Zinazohusiana:Kuunganisha na kuunganisha kamba kwenye Python (+ mwendeshaji, jiunge, n.k.)
Ikiwa ungependa kuongeza ujongezaji kwenye mfuatano, ongeza tu nafasi kwenye safu katika kila mstari.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Kwa kuongeza, kwa kuwa mapumziko ya mstari yanaweza kufanywa kwa uhuru katika mabano, zifuatazo zinaweza kuandikwa kwa kutumia mabano badala ya kurudi nyuma.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Ikiwa unataka tu kupangilia mwanzo wa mstari, ongeza tu kurudi nyuma kwa mstari wa kwanza wa nukuu tatu.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Unganisha orodha ya mifuatano na mistari mipya
Njia ya mfuatano join() inaweza kutumika kuambatanisha orodha ya mifuatano kwenye mfuatano mmoja.
- Makala Zinazohusiana:Kuunganisha na kuunganisha kamba kwenye Python (+ mwendeshaji, jiunge, n.k.)
Wakati join() inaitwa kutoka kwa herufi mpya, kila kipengee cha kamba kinaunganishwa na laini mpya.
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'
Kama ilivyo kwenye mfano hapo juu, kazi iliyojengewa ndani repr() inaweza kutumika kuangalia mifuatano ambayo ina misimbo mipya kama ilivyo.
Gawanya kamba katika laini mpya na orodha:splitlines()
Njia ya kamba splitlines() inaweza kutumika kugawanya kamba katika orodha ya mistari mipya.
splitlines() itagawanya misimbo yoyote kati ya zifuatazo za kuvunja mstari. Vichupo vya wima na nafasi za kurasa pia zimegawanywa.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Ondoa na ubadilishe misimbo ya mipasho ya laini
Kwa kuchanganya splitlines() na join(), inawezekana kuondoa (kuondoa) misimbo ya laini mpya kutoka kwa mfuatano ulio na mistari mipya au kuzibadilisha na mifuatano mingine.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Mabadiliko ya kundi la misimbo ya mipasho ya laini pia inawezekana. Hata kama misimbo ya kuvunja mstari imechanganywa au haijulikani, inaweza kugawanywa kwa kutumia splitlines() na kisha kuunganishwa na msimbo wa kuvunja mstari unaotaka.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Kama ilivyotajwa hapo juu, splitlines() itagawanya nambari mpya ya laini, kwa hivyo hakuna haja ya kuwa na wasiwasi juu ya nambari mpya katika kesi ya njia ya kuchanganya splitlines() na join().
Ikiwa nambari ya laini mpya iko wazi, inaweza pia kubadilishwa na njia ya replace(), ambayo inachukua nafasi ya kamba.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Kumbuka, hata hivyo, kwamba haitafanya kazi ikiwa ina misimbo tofauti ya mipasho ya laini kuliko inavyotarajiwa.
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'
Inawezekana kubadilisha misimbo mingi ya laini mpya kwa kurudia replace(), lakini haitafanya kazi ikiwa agizo si sahihi kwa sababu “\r\n” ina “\n”. Mbinu ya kuchanganya splitlines() na join() iliyofafanuliwa hapo juu ni salama zaidi kwa sababu hakuna haja ya kuwa na wasiwasi kuhusu misimbo ya mipasho ya laini.
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
Tumia mbinu ya rstrip() kuondoa misimbo ya mipasho ya mstari mwishoni mwa sentensi. rstrip() ni njia ya kuondoa herufi za nafasi nyeupe (pamoja na milisho ya mstari) kwenye ncha ya kulia ya kamba.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Chapisha matokeo bila kufuata laini mpya
Chapisha() chaguo za kukokotoa huongeza laini mpya inayofuata kwa chaguo-msingi. Kwa hivyo, ikiwa print() itatekelezwa kwa mfululizo, kila matokeo yataonyeshwa kwenye mstari mpya.
print('a')
print('b')
print('c')
# a
# b
# c
Hii ni kwa sababu thamani chaguo-msingi ya mwisho wa hoja ya print(), ambayo inabainisha mfuatano wa kuongezwa mwishoni, ni alama ya mstari mpya.
Ikiwa hutaki mstari mpya mwishoni, weka tu mwisho wa hoja kwa kamba tupu, na matokeo yatatoka bila laini mpya mwishoni.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Mwisho wa hoja unaweza kuwa kamba yoyote.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Walakini, ikiwa unataka kubatilisha mifuatano kwa matokeo, ni rahisi kubatilisha mifuatano ya asili kuliko kuzibainisha katika hoja ya mwisho ya print(). Tazama makala ifuatayo.
- Makala Zinazohusiana:Kuunganisha na kuunganisha kamba kwenye Python (+ mwendeshaji, jiunge, n.k.)