Низовете са един от основните типове данни в Python. Струните на Python са комбинация от произволен брой знаци, направени от букви, цифри и други специални знаци. В този урок ще научите как да ги създавате, манипулирате и форматирате за използване при различни сценарии.
За да създадете нов Python низ, трябва просто да декларирате последователност от символи, затворени с единични или двойни кавички. Тройните кавички също се използват за низове с дължина на няколко реда.
double_quotes = 'My name is John!' single_quotes = 'My name is John!' multi_line_string = '''1. My name is John!
2. I am a programmer'''
Всеки символ в низ от Python има целочислен индекс. Индексирането започва от 0 при първия знак и се увеличава по низ. Можете да използвате индекса на отделен знак, за да извлечете този знак от низа, както е показано в следващия пример.
myPet = 'Dog not a cat' myPet[0] # 'D' myPet[5] # 'o' myPet[7] # ' ' myPet[12] # 't' # myPet[15] # IndexError
Опитът за достъп до символ извън индекса на крайния символ води до IndexError .
Можете да получите достъп до символ в низ, като използвате отрицателен индекс. В този случай индексирането започва от -1 в крайния символ на низа и се увеличава отрицателно, когато се върнете назад.
myPet = 'Dog not a cat' myPet[-1] # 't' myPet[-6] # ' ' myPet[-8] # 'o' myPet[-13] # 'D'
Нарязването е метод за извличане на подниз (част от низа) от низ. Тази задача се постига с помощта на индексиране на низове.
myPet = 'Dog not a cat' myPet[5:7] # 'ot' myPet[1:12] # 'og not a ca'
Тук се предоставят два индекса, разделени с двоеточие, първият индекс показва къде да започне нарязването, а вторият индекс показва къде да спре. Полученият подниз включва символи от началния индекс до знака преди крайния индекс, знакът в завършващия индекс не е включен в подниза.
Ако не предоставите началния индекс, нарязването започва от първия символ на низа. Ако не предоставите крайния индекс, нарязването завършва на последния знак, докато го включвате в получения подниз.
myPet = 'Dog not a cat' myPet[:7] # 'Dog not' myPet[10:] # 'cat' myPet[:] # 'Dog not a cat'
Можете да предоставите отрицателни индекси и като индекси за нарязване.
myPet = 'Dog not a cat' myPet[10:-1] # 'ca'
Вграденият метод на Python len()
извежда дължината на низ.
myPet = 'Dog not a cat' len(myPet) # 13
Можете да прегледате всеки символ в низ, използвайки for
цикъл.
Пример:
name = 'John' for char in name:
print(char) # 'J', 'o', 'h', 'n'
Обединяването на низове е свързването на два или повече низа, за да се създаде един низ. В Python има няколко метода за обединяване на низове.
Единият използва +
оператор.
str1 = 'Hello' str2 = 'World' concat_str = str1 + str2 # 'HelloWorld' concat_str = str1 + ' ' + str2 # 'Hello World'
Можете да използвате *
оператор за конкатенация на низ за себе си произволен брой пъти.
concat_str = str1*3 # 'HelloHelloHello'
Друг начин за обединяване на низове е чрез join()
метод.
Вграденият join()
метод се използва за обединяване на масив от низове с помощта на общ разделител.
arr = [str1, str2] concat_str = (' ').join(arr) # 'Hello World' concat_str = (',').join(arr) # 'Hello,World'
В горния код първият join()
метод добавя празно пространство между всяка дума в масива.
Вторият join()
метод вмъква запетая между всяка дума в масива.
В Python също можем да обединим низ в цяло число, но не и с +
оператор. Ако се опитаме да използваме следния код:
name = 'John' age = 35 print(a + b)
Ще получим:
Traceback (most recent call last): File 'concat.py', line 5, in
print(a + b) TypeError: can only concatenate str (not 'int') to str
Забележка:Не можете да свързвате низ и цяло число с помощта на +
оператор.За да избегнем тази грешка, можем да използваме str()
метод за преобразуване на цялото число в низ, например:
name = 'John ' age = '35' print(a + str(b)) #John 35
Вграденият split()
метод се използва за разделяне на единичен низ в масив от низове.
string = 'My name is John' split_arr = string.split(' ') # ['My', 'name', 'is', 'John'] We can also split a string using a separator: string = 'John, Rose, Jack, Mary' split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']
strip()
, вграденият метод на низ се използва за премахване на белите интервали от началото и края на низ.
string = ' Hello, World ' stripper_str = string.strip() # 'Hello, World'
Както можете да видите, strip()
не премахва празнините, които са между другите символи, но само в двата края.
Има два варианта на strip()
метод, лява и дясна лента:
lstrip()
rstrip()
Тези методи премахват съответно белите интервали в лявата и дясната страна на низа.
Пример:
lsplit_str = string.lstrip() # 'Hello, World ' rsplit_str = string.rstrip() # ' Hello, World'
Стрип методите са особено полезни при четене на потребителски въведения, където потребителите могат да предадат допълнителни бели пространства.
Python’s format()
метод се използва за форматиране на низ. Къдрави скоби {}
се използват вътре в низа, който трябва да бъде форматиран като заместител за частта, която трябва да бъде заменена с аргументите, предоставени на format()
метод.
Пример:
'Hello, {}'.format('John') # 'Hello, John'
В горния пример {}
се заменя с „Джон“ във форматирания низ.
Можете да използвате повече от една къдрава скоба вътре в низа за форматиране. Те се заменят с аргументите, предоставени на format()
метод или в предоставения ред (ако в къдравите скоби не са посочени позиционни индекси) или позиционен ред.
Пример:
'I have a {}, {}, and a {}'.format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit' 'I have a {1}, {0}, and a {2}'.format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'
Вместо да използвате индекси, можете да предоставите аргументи на ключови думи на format()
метод, така че тези ключови думи да могат да се използват във фигурни скоби.
Пример:
print('{friend} is my friend and {enemy} is my enemy'.format(friend='John', enemy='Jack')) # 'John is my friend and Jack is my enemy'
format()
методът е доста универсален, тъй като може да се използва за много случаи на употреба.
Ето някои други приложения на format()
метод:
arr = [3, 5] 'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 4 cats' #convert numbers to different bases 'int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}'.format(42) # 'int: 42; hex: 2a; oct: 52; bin: 101010'
Използване на Python’s lower()
метод, можете да конвертирате низ в малки букви.
Пример:
string = 'Hello, World!' string.lower() # 'hello, world!'
По същия начин, използвайки Python’s upper()
метод, можете да конвертирате низ в главни букви.
Пример:
string = 'Hello, World!' string.upper() # 'HELLO, WORLD!'
Надявам се, че с помощта на този урок вече сте запознати с низовете на Python и как да използвате различни методи за низови операции.
Справка: Документация за низовете на Python