Подорож №16. Структуровані дані. Рядок

Зрізи рядків

В цій подорожі ми ознайомимося зі структурованими типами даних. Один такий тип даних ви вже знаєте - це дані типу str (пригадаємо подорожі №2 та №6). Цього разу будемо розглядати текстовий рядок як лінійну сукупність поодиноких символів, кожен з которих має свій порядковий номер починаючи з 0.

Наприклад:

S = 'Текст'
print(S[0],S[3])

На екран буде виведено тільки символи Тс. Саме ці символи мають нульовий та третій індекси даного рядка s.

Як бачимо, текстовий рядок розглядається як послідовність символів, кожний з яких має свій порядковий номер (індекс) починаючи з 0. Діапазон індексів (наприклад s[1:5]) дає змогу виділяти фрагменти рядка. Фрагменти рядка ще називають зрізами.

Приклади зрізів рядка:

s = "abcdefghABCDEFGH"
print(s[2]) #виводить 2 - й символ з початку (тобто с)
print(s[-2]) #виводить 2 - й символ з кінця. (тобто G)
print(s[8:10]) #виводить з 8-го по 9 - й символи (тобто результат AB)
print(s[:7]) #виводить з початку по 6-й символ (тобто abcdefg)
print(s[8:]) #виводить з 8-го символа до кінця рядка (тобто ABCDEFGH)

Приклад

Для прикладу розглянемо одну з багатьох задач пов'язаних з аналізом текстового рядка.

Приклад 1: Аналіз рядка

Номер стаціонарного телефона має наступний формат:
0 CC XXX XX XX
CC – код міста 2 цифри.
Програма за введеним номером телефона має визначити та вивести на екран місто з якого дзвонили.
Приклад довідника кодів:

44 – Київ
43 – Винниця
41 – Житомир
31 – Ужгород

  Вікно редактора Python
s = input('введіть номер телефона')
# порівнюємо 3-й та 4-й символи рядка s з кодами міст
# якщо код визначено, присвоїти назву міста змінній city

if s[3:5] == '44':
     city = 'Київ'
elif s[3:5] == '43':
     city = 'Винниця'
elif s[3:5] == '31':
     city = 'Ужгород'
elif s[3:5] == '41':
     city = 'Житомир'
else:
# якщо код невизначено, присвоїти змінній city відповідне повідомлення
     city = 'невідоме місто'
print(city)
вхідні дані
_______________
04422233344
результат
_______________
Київ

Приклад 2: Перебір рядка циклом

Дано текстовий рядок. Програма має вивести його в стовпчик та пронумеровати кожен символ.

  Вікно редактора Python
s = input('введіть фразу')
n = len(s) # визначаємо довжину рядка.
for i in range(n): # Цикл від першого до останнього символа
     print(i,' ',s[i]) # Друк кожного символа по черзі

Практичні вправи

Задача №1

В середовищі Python надрукуйте приклад №2. Відредагуйте програму таким чином, щоб рядок виводився вертикально без нумерації.

Задача №2

Текстовий рядок вводиться з клавіатури. Довжина рядка має бути >=2. Вивести на екран 1-й і останній символи даного рядка.

Задача №3

Дан рядок S. Вивести спочатку парні символи , а потім непарні.

Інші задачі по темі

Завантажити задачник