Web-scraping: сбор данных из баз данных и интернет-источников

Алла Тамбовцева, НИУ ВШЭ

Строки

Дана строка text – объект Python, имеющий строковый тип, тип string. Проще говоря, переменная, которая содержит некоторый текст:

In [1]:
text = "А роза упала на лапу Азора"

Давайте попробуем поработать с этой строкой в формате вопрос-ответ.

Как посчитать количество символов в строке?

In [2]:
len(text)  # как в списке
Out[2]:
26

Как выбрать определённые символы в строке?

In [3]:
print(text[0])  # тоже как в списке
print(text[0:7])
А
А роза 

Как привести всё к нижнему регистру (сделать все буквы строчными?)

In [4]:
print(text.lower()) # метод .lower(), не забываем пустые круглые скобки
print(text) # сама строка не изменяется
а роза упала на лапу азора
А роза упала на лапу Азора
In [5]:
text_low = text.lower() # создали новую строку на основе старой
print(text_low)
а роза упала на лапу азора

Как привести всё к верхнему регистру (сделать все буквы заглавными?)

In [ ]:
print(text.upper())
print(text)
In [ ]:
text_up = text.upper()
print(text_up)

Как добавить в конец строки ещё одну строку?

In [7]:
phrase = text + "."  # конкатенация строк
print(phrase)
А роза упала на лапу Азора.
In [9]:
phrases = phrase + " " + phrase
print(phrases)
А роза упала на лапу Азора. А роза упала на лапу Азора.

Как убрать лишние пробелы и прочие отступы в начале и конце строки?

In [10]:
strange = "    abc  7 "
In [11]:
normal = strange.strip()
print(normal)
abc  7
In [12]:
normal
Out[12]:
'abc  7'

Как разбить строку на части по определённому символу?

In [13]:
words = text.split() # по умолчанию разбивает по пробелу
print(words)
['А', 'роза', 'упала', 'на', 'лапу', 'Азора']
In [14]:
res = text.split("на") # но можно указать разделитель самим
print(res)
['А роза упала ', ' лапу Азора']

Как склеить строки в одну большую строку по определённому символу?

In [18]:
parts = ["03", "02", "2022"]
date = " ".join(parts) # склеиваем по пробелу
print(date)
03 02 2022
In [19]:
date2 = "-".join(parts) # склеиваем по дефису
print(date2)
03-02-2022

Как проверить, что строка начинается с определённого символа?

In [21]:
text.startswith("а")
Out[21]:
False
In [25]:
text
Out[25]:
'А роза упала на лапу Азора'
In [26]:
text.startswith("А")
Out[26]:
True

Как проверить, что строка заканчивается на определённый символ?

In [27]:
text.endswith("Азора")
Out[27]:
True

Как проверить, что строка содержит определённый набор символов?

In [28]:
"на" in text  # оператор in, работает не только для строк
Out[28]:
True
In [29]:
"ну" in text
Out[29]:
False