Python. Строки - тип string. Индексация

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) # вывод количества гласных букв в строке 

Вопросы:

  1. Из чего состоит строка?
  2. Как указать строку в программном коде языка Python?
  3. Как вывести отдельный символ строки?

Упражнения:

 

Категория: Programming languages | Добавил: bzfar77 (14.05.2022)
Просмотров: 972 | Теги: Python, строка, индекс, String | Рейтинг: 0.0/0
Всего комментариев: 0
avatar