Следеће описује рад стрингова који садрже нове редове у Питхон-у.
- Креирајте стринг који садржи нове редове, одштампајте излаз (приказ)
- знак новог реда (било или оба од ЦР и ЛФ у зависности од система)
\n
(ЛФ),\r\n
(ЦР+ЛФ) - троструки цитат
''
,"""
- Ако желите да увучете
- знак новог реда (било или оба од ЦР и ЛФ у зависности од система)
- Повежите листу стрингова са новим редовима
- Поделите стринг на нове редове и листу:
splitlines()
- Уклоните и замените кодове за повлачење линија
- Штампајте излаз без завршног новог реда
Креирајте стринг који садржи нове редове, штампајте излаз
знак новог реда (било или оба од ЦР и ЛФ у зависности од система)\n(ЛФ),\r\n(ЦР+ЛФ)
Уметање кода за унос реда унутар стринга резултираће новим редом.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Кодови за извођење линија могу се користити на следеће начине. Неки уређивачи вам омогућавају да изаберете код за прелом реда.
Macを含むUnix系 | \n (ЛФ) |
Windows系 | \r\n (ЦР+ЛФ) |
троструки цитат'',"""
Ако се троструки наводники користе за затварање стринга, то ће бити стринг какав јесте, укључујући нове редове.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Ако желите да увучете
Троструки наводници су такође размаци у низу, тако да ако покушате да уредно пишете у коду и увлачењу као што је приказано испод, непотребни размаци ће бити уметнути.
s = '''
Line1
Line2
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\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
Повежите листу стрингова са новим редовима
Метода стрингова јоин() се може користити за спајање листе стрингова у један стринг.
Када се јоин() позове из знака новог реда, сваки елемент стринга је спојен са новим редом.
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'
Као у горњем примеру, уграђена функција репр() може се користити за проверу стрингова који садрже кодове новог реда онаквима какви јесу.
Поделите стринг на нове редове и листу: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'
Као што је горе поменуто, сплитлинес() ће поделити било који код новог реда, тако да нема потребе да се посебно бринете о кодовима за нови ред у случају метода који комбинује сплитлинес() и јоин().
Ако је код новог реда јасан, може се заменити и методом реплаце(), која замењује стринг.
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'
Могуће је заменити више кодова за нови ред понављањем реплаце(), али то неће радити ако је редослед погрешан јер „\р\н“ садржи „\н“. Метода која комбинује сплитлинес() и јоин() описана је безбеднија јер нема потребе да бринете о кодовима за увођење реда.
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
Користите методу рстрип() да бисте уклонили кодове за повлачење реда на крају реченице. рстрип() је метод за уклањање знакова размака (укључујући преводе линија) на десном крају стринга.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Штампајте излаз без завршног новог реда
Функција принт() подразумевано додаје задњи нови ред. Стога, ако се принт() извршава узастопно, сваки излазни резултат ће бити приказан у новом реду.
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
Међутим, ако желите да спојите стрингове за излаз, лакше је спојити оригиналне стрингове него их навести у крајњем аргументу принт(). Погледајте следећи чланак.