11.2.2.3 применять функции и методы строк
11.2.2.1 выполнять доступ к элементам строк
Python. Строки - тип string.
Строки. Индексация
Строковый тип, с которым вы уже знакомы, на этом уроке рассмотрим как структуру данных.
String (строка) - структура данных, которая хранит последовательность символов.
Мы получаем строку, когда заключаем символы в кавычки, например, "text". Когда мы используем функцию ввода данных input(), мы получаем значение строкового типа, то есть для введённого значения сразу применяется функция str().
Вы уже можете измерять длину строки, используя функцию len() и определять вхождение одной строки в другую с помощью оператора in.
fixed_line = "programming"
print(len(fixed_line)) # вывод длины строки (целое число)
word = input () # получение строки после ввода данных
print(word) # вывод строки
number = 2020
line = str(number) # преобразование целого числа в строку
print(line)
print("program" in fixed_line) # проверка вхождения одной строки в другую (True/False)
Каждый символ в строке имеет свой индекс, по которому к нему можно получить доступ.
Вы можете обращаться к каждому символу по его индексу. Для этого используйте следующую запись:
s[1] - обратиться к символу с индексом 1 в строке s.
s = "programming"
print(s[1]) # вывод буквы "r"
print(s[6] + s[5] + s[0]) # вывод строки "map"
Отрицательные индексы
В отличии от других языков программирования, Python также использует отрицательную индексацию.
s = "programming"
print(s[-3]) # вывод буквы "i"
print(s[-5] + s[-6] + s[-11]) # вывод слова "map"
При доступе к несуществующему индексу мы получим ошибку.
s = "programming"
print(s[12]) # IndexError: string index out of range# Ошибка индекса: индекс строки за пределами диапазона
Если мы хотим исправить одну букву в слове, например,
s = "pragramming"
s[2] = "o" # TypeError: 'str' object does not support item assignment
Интерпретатор Python выдаст ошибку, которая означает, что изменение символа в строке невозможно, то есть строка - неизменяемая структура данных.
Перебор элементов/символов строки.
Поскольку строка представляет собой последовательность символьных элементов, мы можем перебирать каждый элемент строки . Для перебора мы будем использовать цикл for.
s = "programming"
for item in s: # итератор item будет перебирать каждый символ в строке s
print(item , end=" ") # вывод каждого символа строки s через пробел
Особенности строк:
Строки - упорядоченная структура данных. Каждый элемент имеет свой индекс. Индексация начинается с 0 (нуля).
Строки - итерируемая структура данных. Перебирать элементы строк можно двумя способами по символам и по индексам.
Каждый элемент строки представляется одним символом.
Строки неизменяемая структура данных. Нельзя произвести замену символа в строке без преобразований.
Задача. Определить количество гласных букв в строке.
# Вариант 1
vowels = {"а", "е", "i", "o", "u"} # множество гласных букв
line = "Remote education" # строка
n = 0 # начальное количество гласных букв
for item in line: # перебор символов строки
if item in vowels: # проверка, является ли item гласной буквы
n += 1 # подсчет гласных букв
print(n) # вывод количества гласных букв в строке
Поскольку символы в строке пронумерованы, есть другой способ перебора всех элементов строки с помощью индексов. Перебор всех индексов можно организовать с помощью конструкции for i in range(...).
# Вариант 2
vowels = "аеiou" # строка гласных букв
line = "Remote education" # строка для проверки
n = 0 # начальное количество гласных букв
for i in range(len(line)): # перебор индексов
if line[i] in vowels: # проверка i-го элемента в строке гласных букв
n += 1 # подсчет гласных букв
print(n) # вывод количества гласных букв в строке
Вопросы:
Из чего состоит строка?
Как указать строку в программном коде языка Python?