В этом уроке мы поэкспериментируем со строками. Как вы уже увидели, вы можете писать строки, ограждая их кавычками. Вы можете для этого использовать как одинарные, так и двойные кавычки. Все следующие примеры создают строковые переменные:
1 2 3 4 | test = 'Hello, world' myString = "We're #1!" stringNumber = "1234567890" conversation = 'I said, "Put it over by the llama."' |
Строки могут включать в себя любые символы — буквы, цифры и прочие знаки. Вы можете заметить преимущество от совместного использования одинарных и двойных кавычек в последнем примере. Если строка ограничивается одинарными кавычками, то внутри ее можно использовать двойные.
Мы можем создавать длинные строки, используя по три кавычки для их ограничивания:
1 2 3 4 | longString = '''This is a string that spans across multiple lines''' longString = """This is a new string that spans across two lines""" |
Также можно переносить одну длинную строку на несколько с помощью символа .
1 2 | long_string = "Here's a string that I want to write across multiple lines since it is long." |
Python содержит встроенную функциональность, с помощью которой мы можем обрабатывать строки и получить различную информацию о них. Например, мы можем узнать длину строки с помощью функции len (сокращение от length):
1 2 3 4 5 | >>> my_string = "abc" >>> string_length = len(my_string) >>> print string_length 3 >>> |
Сначала мы создаем строку, с названием my_string. Затем, используя функцию len(), мы вычисляем длину этой строки и сохраняем ее в переменную string_length, а затем выводим ее. Длина строки равна количеству символов в ней, в нашем случае — трем.
Также мы можем соединять строки вместе. Эта операция называется конкатенацией:
1 2 3 4 5 6 | >>> string1 = "abra" >>> string2 = "cadabra" >>> magic = string1 + string2 >>> print magic abracadabra >>> |
Мы даже можем соединять строки без объявления новых переменных:
1 2 3 | >>> print"abra"+"ca"+"dabra" abracadabra >>> |
Когда есть необходимость соединить много строк в одну для вывода, можно использовать запятые. При выводе запятые заменяются пробелами.
1 2 3 | >>> print "abra", "ca", "dabra" abra ca dabra >>> |
Так как строка является последовательностью символов, то мы можем обращаться к каждому конкретному символу. Это делается с помошью квадратных скобок, поставленных после имени переменной:
1 2 3 4 | >>> flavor = "birthday cake" >>> print flavor[3] t >>> |
Сразу бросается в глаза то, что t – это 4й символ строки. Это так, но не в мире программистов. В python (как и в большинстве других языков программирования) отсчет начинается с нулевого символа. Таким образом b – это нулевой символ.
Будьте внимательны при использовании скобок в выражениях. Круглые скобки — (), квадратные — [], и фигурные —{}, используются в python для совершенно различных вещей.
Число на месте которого стоит буква в строке называется индексом. Таким образом, для нашей строки получается:
Символ: b i r t h d a y
Индекс: 0 1 2 3 4 5 6 7
Мы можем выбрать некоторую часть строки, использовав квадратные скобки и определив диапазон индексов.
1 2 3 | >>> flavor = "birthday cake" >>> print flavor[5:8] day |
Число до двоеточия говорит об индексе символа с которого мы хотим начать. Диапазон ограничивается символом 8, но не включает его.
1 2 3 4 5 6 7 | >>> flavor = "birthday cake" >>> flavor[:5] day cake >>> flavor[:] birthday cake >>> flavor[-4:] cake |
Как видите, в качестве индексов можно использовать и отрицательные значения. Тогда отчет будет проходить с конца строки.
Строки относятся к символам неизменяемых последовательностей. Следующий код работать не будет:
1 2 | >>> string = 'coal' >>> string[0] = 'g' |
Вторая строка вызовет ошибку. Для выхода из положения можно поступить следующим образом:
1 2 | string = 'coal' string = 'g' + string[1:] |
Во втором случае мы создаем новую строку и сохраняем ее в уже существующей переменной.
Строки можно дублировать с помощью оператора *.
1 2 3 | >>> Santa = 'Ho' * 3 >>> print Santa HoHoHo |
Также можно выбирать определенный символ, повторяющийся по порядку. Например, нам нужен каждый третий символ:
1 2 3 | >>> string = 'Today is the best day!' >>> print string[::3] Tait sd! |
Как вы можете увидеть, python предоставляет широкие возможности для работы со строками.
Но и это еще не все. После знакомства с функциями мы вернемся к строкам. Научимся производить их форматирование и преобразование.