Основы работы со строками в Python
Хотя работа со строками в Python выглядит простой и очевидной, в строковых правилах присутствуют определенные сложности, которые важно понимать. Знание правил помогает избежать неожиданного поведения строк при изменении значений или форматировании текста.
Простая строка
В нашем примере для этого урока у вас есть один факт о Луне, назначенной переменной, как показано ниже.
fact = "The Moon has no atmosphere."
print(fact)
Выходные данные показывают, что текст назначен переменной: The Moon has no atmosphere.
Неизменность строк
В Python строки являются неизменяемыми. То есть они не могут изменяться. Это свойство строкового типа может вызывать удивление, так как Python не выдает ошибки при изменении строк.
Необходимо добавить еще один факт (предложение) к одному факту, назначенному переменной. Похоже, что добавление второго факта изменит переменную, как показано в следующем примере:
fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."
Вы можете ожидать, что выходные данные будут следующими: The Moon has no atmosphere.No sound can be heard on the Moon.
Хотя может показаться, что мы изменили переменную fact
, быстрая проверка значения показывает, что исходное значение не изменилось:
fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."
print(fact)
Выходные данные: The Moon has no atmosphere.
Дело в том, что необходимо использовать возвращаемое значение. При добавлении строк Python не изменяет их, а возвращает новую строку в качестве результата. Чтобы сохранить этот новый результат, назначьте его новой переменной:
fact = "The Moon has no atmosphere."
two_facts = fact + "No sound can be heard on the Moon."
print(two_facts)
Выходные данные: The Moon has no atmosphere.No sound can be heard on the Moon.
В результате операций со строками всегда создаются новые строки.
Сведения об использовании кавычек
Строки Python можно заключать в одинарные, двойные или тройные кавычки. Хотя они являются взаимозаменяемыми, лучше всего согласованно использовать один тип во всем проекте. Например, в следующей строке используются двойные кавычки:
moon_radius = "The Moon has a radius of 1,080 miles."
Однако если строка содержит слова, числа или специальные символы (подстроку), которые также заключены в кавычки, следует использовать другой стиль. Например, если подстрока использует двойные кавычки, заключите всю строку в одинарные кавычки, как показано ниже:
'The "near side" is the part of the Moon that faces the Earth.'
Аналогично, если имеются одинарные кавычки (или апостроф, как в слове Moon's в следующем примере) в любом месте строки, заключите всю строку в двойные кавычки:
"We only see about 60% of the Moon's surface."
Несоблюдение чередования одинарных и двойных кавычек может привести к тому, что интерпретатор Python выдаст синтаксическую ошибку, как показано ниже:
'We only see about 60% of the Moon's surface.'
File "<stdin>", line 1
'We only see about 60% of the Moon's surface.'
^
SyntaxError: invalid syntax
Если в тексте используется сочетание одинарных и двойных кавычек, для предотвращения проблем с интерпретатором можно использовать тройные кавычки:
"""We only see about 60% of the Moon's surface, this is known as the "near side"."""
Многострочный текст
Существует несколько различных способов обозначения нескольких строк текста с помощью одной переменной. Наиболее распространенные способы:
- Используйте символ новой строки (
\n
). - Используйте тройные кавычки (""").
Символы новой строки разделяют текст на несколько строк при печати выходных данных:
multiline = "Facts about the Moon:\n There is no atmosphere.\n There is no sound."
print(multiline)
Facts about the Moon:
There is no atmosphere.
There is no sound.
Тот же результат можно получить с помощью тройных кавычек:
multiline = """Facts about the Moon:
There is no atmosphere.
There is no sound."""
print(multiline)