
- •Мета роботи
- •Короткі теоретичні відомості
- •1. Змінні, операції і вирази
- •1.1 Використання інтерпретатора Python, як калькулятора
- •1.2. Представлення тексту
- •1.3. Значення і типи
- •1.4. Перетворення типів
- •1.6. Імена змінних і ключові слова
- •Всього в Python зарезервовано 29 ключових слів:
- •1.7. Вирази
- •1.8. Виконання виразів
- •1.9. Оператори і операнди
- •1.10. Порядок операцій
- •2.1. Прості операції над стрічками
- •2.2. Оператор індексування
- •2.3. Довжина стрічки і від’ємні індекси
- •2.4. Доступ до підстрічок
- •2.5. Зміни у стрічках
- •2.4. Речення
- •3. Списки
- •3.1. Створення списків
- •3.2. Функція range
- •3.3. Списки і індекси
- •3.4. Довжина списку
- •3.5. Додатково про списки
- •3.6. Оператор del
- •4. Кортежі
- •5. Набори
- •Додаток а Сьогодні ми вивчили:
- •Методи роботи зі стрічками
- •Методи роботи зі списками
- •Порядок виконання роботи
- •Варіанти завдань
- •Література
- •Інтернет посилання
- •Методичні вказівки
2.1. Прості операції над стрічками
Взагалі кажучи, над стрічками не можна проводити ті ж операції, що і над числами, тому наступні приклади працювати не будуть:
message-1 "Hello"/123 "Hello"*"world!" "15"+2
Але оператор «+» працює з стрічками, хоча позначає іншу операцію: конкатенацію або зчеплення рядків.
>>> str1 = "Hello"
>>> str2 = " world"
>>> print str1 + str2 + "!"
Hello world!
Зверніть увагу, що друга стрічка починається з пропуску. Пропуск такий же символ як і будь-який інший.
Оператор * теж можна використовувати по відношенню до стрічок, але за умови, що одним з операндів буде ціле число. В цьому випадку оператор * символізує операцію повторення стрічки (або ітерацію). Наприклад, 'Fun'*3 видасть результат 'FunFunFun'. Можна прослідкувати аналогію між операціями над числами і операціями над стрічками: так само, як 4*3 еквівалентно 4+4+4, 'Fun'*3 еквівалентно 'Fun'+'Fun'+'Fun'.
Але з іншого боку, конкатенація і повторення мають кілька істотних відмінностей від складання і множення.
Вправа. Який результат буде отримано після виконання виразу "hello"+" world"*3? Які висновки можна зробити на основі цього результату?
2.2. Оператор індексування
Ми вже навчилися виконувати деякі операції над стрічками, але до цього моменту ми працювали зі стрічкою як з єдиним цілим. Відомі нам операції над стрічками (конкатенація і ітерація) є, по суті аналогами складання і множення чисел, але цей набір неповний – не вистачає аналогів операцій віднімання і ділення.
В програмуванні існує цілий набір спеціальних операцій і функцій, символів, що дозволяють працювати з наборами, які складають стрічку – підстрічку.
Простий з них – оператор індексування. Даний оператор дозволяє отримати будь-який одиночний символ зі стрічки. У нього досить простій синтаксис:
РЯДОК[ІНДЕКС]
Індекс, що указується в квадратних дужках, є порядковим номером символу в стрічці:
>>> 'Hello!'[1]
'e'
Інтерпретатор чомусь повернув не перший, а другий символ стрічки. Пояснюється ця семантична помилка дуже просто. Річ у тому, що комп'ютер починає відлік не з одиниці, а з нуля. Перевіримо:
>>> 'Hello!'[0]
'H'
2.3. Довжина стрічки і від’ємні індекси
Для зручної роботи з оператором індексування добре б було знати довжину стрічки. Втім, з'ясувати це можна за допомогою вбудованої функції len().
>>> len('Hello world!')
12
>>>
Зверніть увагу, що пропуск теж враховується як символ. Визначати можна також і довжину змінної:
>>> a='Hello!'
>>> len(a)
6
Тепер давайте спробуємо вивести останній символ стрічки:
>>> а = 'Hello!'
>>> а[len(a)]
Traceback (most recent call last):
File "<pyshell#16>", line 1, in -toplevela[
len(a)]
IndexError: string index out of range
>>>
Оскільки нумерація символів в стрічках починається з нуля, ми використали неприпустиме значення індексу – символу з таким індексом в цій стрічці немає, тому інтерпретатор згенерував виключення IndexError: string index out of range. Виправимо помилку скориставшись композицією: як індекс можна використати будь-який вираз, що повертає ціле число.
>>> а = 'Hello!'
>>> а[len(a)-1]
'!'
Використання функції len() в операторі індексування виглядає громіздко, тому передбачено коротший варіант запису:
>>> а[-1]
'!'
Ще один маленький експеримент. Спробуємо підставити як індекс інше від’ємне число:
>>> а[-5]
'e'
Таким чином, ми можемо індексувати стрічку з обох її кінців – це дуже зручно. До речі, така можливість є в дуже небагатьох мовах програмування. А зараз невелика вправа для закріплення матеріалу.
Вправа. Напишіть програму, яка виводить довжину введеної користувачем стрічки, а також перший, п'ятий і останній символ. Не забудьте передбачити випадок, коли довжина стрічки складає менше за п'ять символів.