Строковый тип данных в Python: string
Строка — это некоторая последовательность символов. В языке Python строковые данные имеют формат str.
Строка в Python
Создадим первую текстовую переменную. Для создания строки можно использовать как одинарные, так и двойные кавычки:
>>> s = 'Hello world'
>>> s
'Hello world'
>>> s = "Hello world"
>>> s
'Hello world'
Вывод в Python всегда будет в одинарных кавычках, так как производится перевод двойных кавычек в одинарные.
Проверим тип этой переменной:
>>> type(s)
<class 'str'>
Если необходимо задать большой фрагмент текста, то используются тройные кавычки:
>>> s='''Hello
World!!'''
>>> s
'Hello\nWorld!!'
В данном примере сохранился знак перехода на новую строку (‘\n’).
Преобразование чисел в строки и обратно
Любое число можно преобразовать в строку. Для этого используется функция str() давайте попробуем:
>>> str(1232)
'1232'
>>> str(-0.5)
'-0.5'
Теперь попробуем выполнить обратное действие
>>> s = '123'
>>> int(s)
123
>>> float(s)
123.0
>>> s = '1.23'
>>> float(s)
1.23
>>> int(s)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
int(s)
ValueError: invalid literal for int() with base 10: '1.23'
Если вид числа не удовлетворяет типу данных, то преобразование не выполняется. Компилятор выдает ошибку вида invalid literal, что в переводе означает недопустимый литерал (символ), из-за наличия точки, то есть данное число является числом с плавающей точкой (float).
Чтобы избежать данной ошибки, в первую очередь необходимо выполнить преобразование в тип float. Если нужно, то затем преобразовываем полученный float в int.
>>> s='0.23'
>>> int(float(s))
0
Основные операции со строками в Python
Длина строки
В Python строка представляет собой массив символов, расположенных в определенной последовательности. Когда мы пишем:
>>> s='Hello world'
Компьютер представляет это следующим образом:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
H | e | l | l | o | w | o | r | l | d |
Воспользуемся функцией len(), чтобы узнать длину строки.
>>> len(s)
11
Как и было указано выше, длина данной строки — 11 символов (нумерация начинается с нуля).
Строка является массивом, поэтому мы можем обратиться к каждому отдельному элементу строки, давайте попробуем:
>>> s[2]
'l'
>>> s[4]
'o'
Также можно получить, так называемый срез слова, то есть фрагмент из общей последовательности символов. Для этого нужно указать диапазон:
>>> s='Hello world'
>>> s[2:5]
'llo'
Сложение строк
Давайте попробуем сложить 2 строки:
>>> s1='Hello'
>>> s2='world'
>>> s1+s2
'Helloworld'
Также при сложении можно добавлять не только переменные, которым присвоены строки, но и просто сами строки:
>>> s1='Hello'
>>> s2='world'
>>> s1+' '+s2+"!"
'Hello world!'
Попробуем сложить строки и числа:
>>> s1='number '
>>> s1+1
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
s1+1
TypeError: can only concatenate str (not "int") to str
Строковой тип данных можно складывать только с таким же типом.
Достаточно выполнить преобразование, чтобы получить правильное решение:
>>> s1+str(1)
'number 1'
Умножение строк
Давайте попробуем выполнить различные умножения: на целое число, на дробное число, на само себя:
>>> s='Hi'
>>> s*2
'HiHi'
>>> s*1.2
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
s*1.2
TypeError: can't multiply sequence by non-int of type 'float'
>>> s*s
Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
s*s
TypeError: can't multiply sequence by non-int of type 'str'
Операция умножения в данном случае является дублированием строки. Такое действие можно выполнить только целое число раз, поэтому при умножении на дробное число или на строку выдаёт ошибку.
Умножать строковой тип данных можно только на целые числа.
Добавить комментарий