ачто строки умеют в питоне
вообще ниче они не умеют, всем пока!
Ладно шучу, они и в самом то деле ничего не умеют, но мы можем научится делать с ними движения. Кхм-кхм, а что такое строки?
Строка(str) - это последовательность символов. Можно думать о ней как о списке букв, цифр и прочих знаков.
text = "ляляля я семен лобанов"
text = 'можно и в одинарных кавычках'
Что можно делать со строками?
hello = "Привет, " name = "Кодер!" greeting = hello + name # "Привет, Кодер!"
laugh = "ха" * 3 # "хахаха"
Делить (срезы)
Строки можно резать как колбасу:
text = "Python" print(text[0]) # 'P' print(text[1:4]) # 'yth' print(text[-1]) # 'n' (последний символ)
if "Привет" in "Привет, мир!":
print("Нашел!") Форматировать (f-строки)
Самый удобный способ впихнуть переменные в текст:
name = "Вася"
age = 25
print(f"{name} - {age} лет") # "Вася - 25 лет"У строк куча методов для работы:
ДОЛБАНОЕ ФОРМАТИРОВАНИЕ или что это за проценты такие
Как работает %-форматирование?
"Шаблон строки" % (значения)
пример
name = "Вася" age = 30 text = "Меня зовут %s, мне %d лет." % (name, age) print(text)
Вывод: Меня зовут Вася, мне 30 лет.
Что значат %s, %d и другие спецификаторы?
user = "admin"
print("Логин: %s" % user) # Логин: admin name = "Олег"
balance = 100.50
print("Клиент: %s, баланс: $%.2f" % (name, balance)) #Клиент: Олег, баланс: $100.50pi = 3.14159265
print("Число Пи: %.3f" % pi) # Число Пи: 3.142 почему строка это не список?
Строка — неизменяемый тип данных. То есть нельзя взять и поменять один символ внутри нее.
Давай поговорим сначала о том, что можно делать и со списками, и со строками
Обращение по индексу
text = "Hello" lst = [1, 2, 3] print(text[0]) # 'H' print(lst[0]) # 1
Срезы (slicing)
print(text[1:4]) # 'ell' print(lst[1:3]) # [2, 3]
Длина (len())
print(len(text)) # 5 print(len(lst)) # 3
Итерация (for)
for char in text:
print(char) # H, e, l, l, o
for num in lst:
print(num) # 1, 2, 3 Конкатенация (+)
new_text = text + " world" # "Hello world" new_list = lst + [4, 5] # [1, 2, 3, 4, 5]
Повторение (*)
print(text * 2) # "HelloHello" print(lst * 2) # [1, 2, 3, 1, 2, 3]
Что можно делать ТОЛЬКО со списками:
Изменение элементов
lst = [1, 2, 3] lst[0] = 99 # [99, 2, 3] text = "abc" text[0] = "x" # Ошибка! TypeError: 'str' does not support item assignment
Добавление элементов
lst.append(4) # [1, 2, 3, 4] lst.extend([5, 6]) # [1, 2, 3, 4, 5, 6]
Удаление элементов
del lst[0] # [2, 3] lst.remove(2) # [3]
Сортировка и реверс
lst.sort() # Сортирует список lst.reverse() # Разворачивает список
Вставка элементов
lst.insert(1, "new") # [1, "new", 2, 3]
ПОМНИМ, ЧТО СТРОКА ЭТО НЕИЗМЕНЯЕМЫЙ ТИП ДАННЫХ. А это значит, что во время исполнения нашей программы мы НЕ можем добавить оттуда букву или убрать при помощи специальных методов.
Чисто технически это можно сделать, но тогда нам нужно будет либо, создавать новую переменную, либо перезаписывать нынешнюю, например:
text = "Кот" text[0] = "Р" # Ошибка! TypeError
Так низя делать!!! Но можно сделать так:
text = "Р" + text[1:] # "Рот"
То есть мы просто перезаписали уже существующую переменную и все :)
Есть еще методы, которые используются ТОЛЬКО для строк, но это те методы, которые я описал выше, например, Строковые методы (.upper(), .split(), .replace() и др.). Списки нельзя форматировать используя %-форматирование.