Перелік коротких описів
Мова програмування Python
« Повернутися до практикування
Підрозділи
- Мова програмування Python
- Змінні та вирази
- Змінні та числові вирази в Python
- Математичні функції в Python
- Логічні вирази в Python
- Контроль розрахунків
- Умовний оператор (if) в Python
- Цикл for в Python
- Цикл while в Python
- Внутрішні цикли в Python
- Функції в Python
- Типи даних та їх використання
- Огляд типів даних
- Рядок в Python
- Списки в Python
- Словники в Python
- Об’єкти в Python
Мова програмування Python
Python зараз є найпопулярнішою мовою програмування для навчання програмуванню. Однак це не тільки мова навчання, вона також широко використовується на практиці. Ми використовуємо Python 3 у розробці Знаємо програмування.
Рекомендовано, якщо ви хочете більше програмувати на Python встановіть його на свій комп’ютер. Однак, щоб навчитися основам програмування на Python, достатньо браузера. У Знаємо програмування, ми пропонуємо багато вправ і прикладів:
- Для початківців спробуйте вправу Вибір, де ви обираєте лише із запропонованих варіантів. Коли ви трохи розігрієтеся, ви можете спробувати Письмова відповідь, де ви пишете відповідь на клавіатурі.
- Ви можете потренуватися в читанні коду у вправі Код кубика, де ваше завдання правильно виконати задану програму. У вправі Розуміння наявні доступні приклади. На них можна побачити, як виглядають програми на Python. Для кожного прикладу підготовлено ряд контрольних запитань, за допомогою яких ви можете перевірити своє розуміння програми.
- Але насамперед спробуйте самостійне програмування. Для цього використовуються вправи Програмування на Python та Python черепаха. Ви пишете програму безпосередньо в браузері, де також можете її запустити і автоматично перевірити, чи вона правильна.
Початківцям ми рекомендуємо приклади з розділу для розминки алгоритмічного мислення, де основні поняття можна перевірити у формі графічного програмування.
ВгоруЗмінні та вирази
Робота зі змінними та виразами є основними будівельними блоками, з яких ми згодом будуємо програми, використовуючи конструкції для контролю обчислень.
Базове навчання в цій галузі поділяється на дві гілки:
- Змінні та числові вирази у Python – базове використання змінних, написання арифметичних виразів, основні математичні функції.
- Логічні вирази у Python – оператори порівняння, логічні сполучення та їх використання.
Потім ми створюємо інші вирази, наприклад, використовуючи рядки і списки.
Для початківців у Python може бути корисно пройти вправу змінні із розділу алгоритмічного мислення як розминку. Там можна практикувати основні принципи роботи зі змінними без специфіки Python.
ВгоруЗмінні та числові вирази в Python
Змінна – це ім’я, яке посилається на деяке значення. Значення змінної може змінюватися – зрештою, її називають «змінною».
Назви змінних
Назви змінних можуть містити літери, цифри та символ підкреслення. Вони не мають містити пробіл або починатися з цифри. Назви змінних чутливі до регістру, тобто number і Number — це дві різні змінні. У Python прийнято писати імена змінних у нижньому регістрі. Ми використовуємо підкреслення у багатослівних іменах змінних, як-от, list_length. Python 3 дозволяє використовувати символи українського алфавіту в іменах змінних. Проте, краще писати назви змінних англійською. Ми обираємо описові імена змінних.
Приклади:
- правильні назви змінних:
name,k,max_value - недійсні назви змінних:
2nd_var,actor name,max-value
Створення та оновлення змінної
Ми створюємо змінну, просто присвоюючи їй значення. Згодом ми можемо оновити значення. Змінна містить останнє значення, яке їй було призначено. Для присвоєння ми використовуємо знак рівняння:
x = 20 # створення змінної x і присвоєння їй значення 20
y = 5 # створення змінної y і присвоєння їй значення 5
x = 10 # зміна значення x на 10
print(x, y) # друкує 10 5Змінні можуть бути різних типів. Python — це динамічно типізована мова програмування. Це означає, що нам не потрібно вказувати тип змінної у програмі, інтерпретатор мови визначає його автоматично. Якщо ми призначимо x = 5, змінна x автоматично матиме тип int (ціле число).
Список змінних і виразів
Ми виконуємо випис за допомогою функції print. Ця функція може мати більше параметрів. Якщо ми хочемо перерахувати символи для арифметичних операцій, ми маємо взяти їх у лапки або апостроф. Приклади:
a = 3
b = 8
print(a) # вихід: 3
print(a, b) # вихід: 3 8
print(a + b) # вихід: 11
print(a, "+", b) # вихід: 3 + 8Арифметичні операції
Ми можемо виконувати основні арифметичні операції з числами, позначення такі самі, як і на звичайних калькуляторах (+, -, /, *). Python також підтримує операції цілочисельного ділення (//), ділення з залишком (%) і піднесення до степеня (**) — ці операції часто використовуються у програмуванні.
x + y # додавання
x - y # віднімання
x * y # множення
x / y # ділення
x // y # цілочисельне ділення
x % y # ділення з залишком
x ** y # піднесення до степеняУ програмуванні ми не можемо опускати позначення множення, як у математиці, тобто ми не можемо писати y = 2x, ми мусимо писати множення із зірочкою y = 2*x.
Пріоритет операцій такий самий, як у математиці, і, як і у математиці, ми можемо використовувати круглі дужки:
print(2+3*4) # -> 14
print((2+3)*4) # -> 20
x = 5
print(3*x**2) # -> 75
print((3*x)**2) # -> 225Скорочений запис
У програмуванні ми часто оновлюємо значення змінної, додаючи до неї певне значення, наприклад, x = x + 1, money = money + wage. Оскільки це часта операція, Python пропонує скорочений запис за допомогою оператора +=. Існують аналогічні оператори і для інших арифметичних операцій.
x += 1 # те саме, що і x = x + 1
x *= 2 # те саме, що і = x * 2
money -= price # те саме, що money = money - priceМатематичні функції в Python
Python пропонує вбудовані функції для основних математичних функцій, таких як:
abs(x) # абсолютне значення x
round(x) # округлити значення x (до цілого числа)
round(x, 2) # округлити значення x до 2 знаків після коми
min(x, y) # мінімум x, y
max(x, y, z) # максимум x, yІнші корисні математичні функції (наприклад, log, sqrt, sin, floor) надаються Python у бібліотеці math.
Логічні вирази в Python
Python обчислює логічні вирази як значення True (правда) і False (неправда). Точний запис цих констант, як правило, є джерелом помилок:
- Великі літери важливі:
True— це логічна константа (правда), аtrue— це назва змінної (яка може містити будь-яке значення)."True"і"False"(тобто імена логічних констант, взяті в лапки) є звичайними рядками, а не константами зі спеціальним значенням.
Оператори порівняння
Базовим логічним виразом є порівняння двох виразів (наприклад, порівняння значення змінної та константи). Ми пишемо оператори більший/менший схожим із математикою (> і <) чином, «більше/менше або дорівнює» ми пишемо як >= і <=. Ми виконуємо перевірку рівності за допомогою двох знаків рівності (==). Перевірку нерівності записуємо як !=.
Приклади:
x = 42 # присвоєння змінній
x == 42 # перевірка рівності
x != 42 # перевірка нерівності
x > 42 # більше
x >= 42 # більше або дорівнюєЗверніть увагу на різницю між присвоєнням змінній (один знак рівності) і перевіркою на рівність (два знаки рівності).
Попередження: оператор is
is, який, здається, працює подібним чином як і ==, і його використання, як правило, є джерелом помилок. Оператор is є корисним інструментом для досвідчених програмістів, але новачкам настійно рекомендується уникати його.
Логічні сполучники
Ми можемо комбінувати основні логічні вирази за допомогою класичних логічних сполучників:
not= запереченняand= і також (кон’юнкція) = результат єTrue, якщо обидва аргументи єTrueor= або (диз’юнкція) = результат єTrue, якщо хоча б один з аргументів єTrue
a = True # правда
b = False # неправда
c = a or b # або -> True
c = a and b # і також -> False
c = not a # заперечення -> FalseЩоб відпрацювати значення сполучників, скористайтеся вправою Бінарний кросворд.
Цікавий факт: логічні сполучники в інших мовах
У деяких мовах програмування логічні сполучники записуються за допомогою символів &, |, !. Ви також можете зустріти ці символи в Python (наприклад, в операціях із наборами), але вони не використовуються для логічних сполучень, вони записуються на Python англійськими назвами and, or, not.
Пріоритети логічних сполучників
Пріоритети операторів розташовані у порядку спадання: not, and, or (тобто, not має найвищий пріоритет). Ми можемо використовувати круглі дужки, щоб змінити пріоритет або зробити вирази більш читабельними.
x = a or b and c # спочатку вирішується and, лише потім or
x = a or (b and c) # так само як у минулому прикладі, але читається простіше
x = (a or b) and c # тепер спочатку вирішується or
x = not a or b # спочатку not, лише потім or
x = not (a or b) # спочатку or, потім notКонтроль розрахунків
Програма на Python складається з кількох команд, які ми об’єднуємо відповідним чином:
- Послідовність команд означає, що ми просто викликаємо команди одну за одною. Ми приділяємо увагу їх відбору та сортуванню.
- Умовний оператор дозволяє нам виконувати деякі команди лише за умови виконання вказаної умови.
- Ми використовуємо цикл for та цикл while для повторного виконання команди. Кожен із цих циклів має дещо різне використання, і добрим буде ретельне практикування обох.
- Керівні структури можуть бути вкладені одна в одну, наприклад, ми можемо мати умову всередині циклу. У нас є окрема тема вкладені цикли, оскільки це сфера, з якою початківці зазвичай мають проблеми.
- Ми поділяємо програми на функції, які дозволяють повторно використовувати частини коду.
Для повних початківців може бути корисно як розминку на Python виконати вправи з основ алгоритмічного мислення, де ви зможете практикувати основи використання циклів і умов у формі графічного програмування.
ВгоруУмовний оператор (if) в Python
Ми пишемо умовне виконання команди за допомогою if. Ми можемо використовувати будь-який логічний вираз як умову. Також можна умовно виконувати кілька команд. Блок команд позначаємо відступом:
if answer != 42: # команди виконуються тільки при виконанні умови:
print("Bad answer") # напишемо текст
answer = 42 # а також змінимо зміннуГілка еlse
Ми також можемо сказати, що має статися, якщо умова не виконується. Це робиться за допомогою команди else, за якою йде блок команд із відступом:
if x < 10:
print("small") # виконується, якщо умова виконується
else:
print("big") # виконується, якщо умова не виконуєтьсяОкремі варіанти обчислення називаються гілками, а умовну команду також можна назвати розгалуженням.
Багатократне розгалуження
Якщо ми хочемо перевірити кілька варіантів, ми можемо застосувати конструкцію if / elif /else. У деяких мовах програмування оператор switch використовується для багаторазового розгалуження. У нас немає цієї команди у Python, ми можемо обійтися `elif’:
if age < 6:
print("дошкільник")
elif age < 18: # перевіряється, якщо попередня умова не виконується
print("школяр")
elif age < 65: # перевіряється, якщо жодна з попередніх умов не виконується
print("дорослий ")
else: # виконується, якщо жодна з попередніх умов не застосовується
print("пенсіонер")З гілок if/elif виконується щонайбільше одна з них – та, у якої умова виконується першою, є виконаною. У наведеному прикладі, якщо в змінній age збережено значення 15, друкується лише текст «школяр». Умова age < 65 також виконується, але вона більше не оцінюватиметься.
Вкладене розгалуження
Ми також можемо вкладати умовні команди, тобто деякі з гілок можуть мати подальше розгалуження. Потім нам потрібно збільшити зсув для наступних гілок. Отже, ми можемо написати:
if choice == "tea":
if money >= 10:
print("ok")
else:
print("refuse")
else:
print("not available")
if n % 2 == 1:
if x > 13:
print("Win!")Проте в деяких випадках простіше і зрозуміліше послуговуватися простим умовним оператором з умовою, що використовує логічні операції замість вкладеного коду. Як-от, ми можемо спростити другий приклад так:
if n % 2 == 1 and x > 13:
print("Win!")Цикл for в Python
Ми послуговуємося циклами у програмуванні для повторення групи команд. Ми зазвичай називаємо повторення терміном ітерація.
Ми використовуємо цикл for, якщо заздалегідь знаємо, скільки повторень матиме цикл. У інших випадках користуємося циклом while.
Простий цикл for
Основним застосуванням циклу for є просто повторення набору команд. Використовуючи for i in range(10), ми повторюємо набір команд 10 разів. Команди, які потрібно повторити, мають містити відступ. Ось як ми пишемо Привіт десять разів:
for i in range(10):
print("Привіт")Керуюча змінна
Під час циклу значення керуючої змінної (у наведеному вище прикладі це i) змінюється. Тож у кожній ітерації циклу ми можемо робити щось дещо інше залежно від поточного значення цієї змінної. Яких значень набуває керуюча змінна, визначається частиною після in. Якщо ми використовуємо базовий range, керуюча змінна буде поступово збільшуватися на одиницю. Наприклад, цей цикл друкує числа від 0 до 9:
for i in range(10):
print(i)У межах циклу ми можемо використовувати декілька змінних, але лише для керуючої змінної значення змінюється автоматично. Розглянемо цей приклад:
y = 1
z = 2
for x in range(10):
y = x + y + z
print(x, y, z)Керуючою змінною циклу є x, значення якої змінюватиметься поступово (від 0 до 9). Для змінної y значення зміниться, оскільки в циклі ми маємо оператор присвоєння y. Значення змінної z залишатиметься незмінним у всіх ітераціях, оскільки z не є керуючою змінною, і ми нічого не призначаємо їй у циклі.
Використання range
У базовому використанні ми поєднуємо цикл for із функцією range, яка повертає інтервал чисел, а керуюча змінна згодом отримує значення з цього інтервалу.
Увага: в інформатиці ми часто рахуємо від нуля (а не від одиниці, як звичайні люди). Ми також зустрічаємося з цим і тут: range(n) повертає значення від 0 до n-1.
Якщо ми введемо два параметри у функцію range, тобто викличемо range(a, b), це дасть нам інтервал чисел від a до b-1. Ми також можемо ввести третій параметр, який визначає довжину стрибка. Приклади:
for x in range(5, 13): print(x, end=" ") # 5 6 7 8 9 10 11 12
for x in range(5, 16, 3): print(x, end=" ") # 5 8 11 14
for x in range(8, 0, -1): print(x, end=" ") # 8 7 6 5 4 3 2 1Цикл for можна використовувати не лише разом із range, а й у більш загальному вигляді. Наприклад, ми можемо послуговуватися списками:
for x in [3, 7, 10]:
print(x)Приклади використання циклу for
Перелік інформації про парність і непарність перших n чисел:
n = 20
for i in range(1, n+1):
if i % 2 == 0:
print(i, "парне")
else:
print(i, "непарне")Обчислення суми чисел від 1 до n:
n = 10
s = 0
for i in range(1, n+1):
s = s + i
print("Сума чисел від 1 до", n, "є", s)Перелік інформації про перші n ступенів двійки:
n = 10
for x in range(1, n+1):
print("Два в степені", x, "це", 2**x)Цикл while в Python
Ми використовуємо цикли у програмуванні для повторення групи команд. Ми часто називаємо повторення терміном ітерація.
Ми використовуємо цикл while, якщо не знаємо наперед, скільки разів цикл повторюватиметься. Якщо ми знаємо кількість повторень заздалегідь, ми використовуємо цикл for.
Основне використання
Цикл while повторюється, поки не виконається керівна умова циклу (у прикладі нижче це n > 5). Тіло циклу (команди, які мають повторюватися) позначаються відступом.
n = 5
while n > 0:
print("Це буде написано п'ять разів.")
n = n - 1Ми використовуємо цей цикл для запису ступенів двійки, які не більші за 100:
n = 1
while n < 100:
print(n)
n = n * 2Нуль і нескінченність повторень
Умова оцінюється ще перед першим виконанням тіла циклу. Якщо вона не виконується, то тіло циклу while не виконується жодного разу:
n = 200
while n < 100:
print("Це не пишеться.")Може статися, що цикл while ніколи не закінчується. Ця програма нескінченно друкує одиниці:
n = 1
while n < 100:
print(n)Такий нескінченний цикл зазвичай означає помилку у програмі. Типовим є те, що ми забуваємо змінити в тілі циклу значення змінної, яка з’являється в умові циклу.
ВгоруВнутрішні цикли в Python
Для повторення команд використовуються основні цикл for і цикл while.
Тіло циклу може містити не лише основні команди, а й інший цикл – ми називаємо його вкладеним циклом. Для його використання не потрібна нова команда. Ми просто пишемо (і відкладаємо) цикл всередині іншого циклу. Однак навички роботи з вкладеними циклами варто тренувати, саме ця тема є частим джерелом проблем.
Приклад:
n = 5
for i in range(n):
for j in range(n):
print(i+j, end=" ")
print()Ця програма виводить таку таблицю:
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8Внутрішній цикл (з керуючою змінною j) друкує окремі рядки. Потім зовнішній цикл (з керуючою змінною i) організовує запис усієї таблиці. Цей приклад наочно показує важливу роль правильного відступу. Команда print() викликає розриви рядків – ми використовуємо її у програмі щоразу після друку повного рядка.
Що станеться, якщо відступ команди
print() ми збільшимо або зменшимо?
- Якщо зробити відступ
print()нижче на один рівень:- Це було б частиною внутрішнього циклу, і тоді новий рядок ставився б після кожного числа.
- Результатом роботи програми буде ряд чисел одне під одним.
- Якщо б ми зробили відступ
print()на один рівень вище:- Команда була б записана поза циклом, тому розрив рядка буде зроблено лише один раз у самому кінці.
- Якщо б ми зробили відступ
- Результатом програми буде ряд чисел в одному рядку.
Функції в Python
Функція – це іменований блок команд. Ми можемо передавати аргументи функціям. Функція зі свого боку повертає значення.
Визначення функції
Python пропонує цілий набір вбудованих функцій, тобто таких, які вже підготували творці мови. Прикладом є функція `len’, яка обчислює довжину рядка.
Ми визначаємо нашу власну функцію за допомогою ключового слова def:
def say_hello(name):
print("Hello", name)Таким чином, ми визначили функцію say_hello, яка має параметр name. Функція також може мати більше параметрів.
Виклик функції
Просто тому що ми визначаємо функцію, вона ще не виконується. Щоб функція виконувалася, нам потрібно її викликати. Ми робимо це, записуючи назву функції та передаючи певний аргумент у дужках:
say_hello("Alice") # напиши Hello Alice
say_hello("Bob") # напиши Hello BobДеякі функції не мають параметрів. Нам все ще потрібно включати дужки під час їх виклику, наприклад, say_goodbye().
Повернене значення
Функція може повертати якесь значення, використовуючи ключове слово return. Наступна функція обчислює та повертає факторіал.
def factorial(n):
f = 1
for i in range(1, n+1):
f = f*i
return fТака функція сама по собі нічого не робить, вона просто повертає значення, з яким ми можемо працювати далі.
factorial(5) # рахує значення факторіалу 5, але потім це значення
# ніяк далі не використовує
print(factorial(4)) # цього разу випишемо результат рахунку
x = factorial(6) # цей результат збережеться до змінної
print(x) # а потім можна виписати значення цієї змінноїКоманда return завершує виконання функції. Таким чином, коли викликається така функція, друкується лише foo:
def test():
print("foo")
return 0
print("bar")Різниця між return та print
Частим джерелом проблем для початківців є правильне розрізнення між використанням print і return у функціях.
Використання print приводить до негайного виведення значення, але ви не можете працювати з цим значенням далі якимось іншим способом.
Використання return завершує роботу функції та повертає значення. Воно не виписується автоматично, але ми можемо призначити його змінній і продовжувати з ним працювати.
Типи даних та їх використання
Основним елементом програмування є робота з даними. Ми зберігаємо дані у змінних і структурах даних. Для цього ми маємо різні типи даних у Python, і кожен із них має своє специфічне використання. Тема огляд типів даних присвячена базовій нотації та позначенню у Python.
Ми можемо зосередитися на найбільш використовуваних типах даних:
- Числові типи (int, float) розглядаються в основній темі змінні та числові вирази.
- Логічний тип (bool) тісно пов’язаний із темою логічних виразів.
- Рядки — це послідовності символів, які порівняно з числами додають принцип індексації.
- Списки є більш загальними, ніж рядки, оскільки вони динамічно змінюються та можуть містити елементи різних типів.
- Словники дозволяють індексувати не лише числами, а й рядками.
Більш загальна тема об’єкти пов’язана з типами даних, які у свою чергу належать до більш просунутих тем, а тут ми охоплюємо лише основи.
ВгоруОгляд типів даних
Огляд типів
Основні типи даних у Python:
| Тип | Опис | Приклади значень |
|---|---|---|
int |
цілі числа | 1, 42, -5, 200 |
float |
дійсні числа (точніше, числа з рухомою комою, де Python використовує десяткову крапку, а не кому) | 2.5, 3.25, -12.37832 |
bool |
значення істинності | True, False |
str |
рядки | "порося", "пес" |
list |
списки, які є впорядкованими наборами значень | [1, 3, 8, 2], ["коза", "вівця", "кенгуру"] |
dict |
словники, які є невпорядкованими парами ключ-значення (словник відображає ключі на значення) | {"a": 5, "b": 10} |
Python також пропонує інші типи, наприклад, complex' (комплексні числа),tuple’ (сутність, незмінна послідовність), `set’ (набір).
Мінливість і незмінність
Ми розрізняємо типи залежно від того, чи можемо ми змінити їхні значення:
- мінливі (mutable) типи даних це
list, set, dict; - незмінні (immutable) типи даних це
int, float, bool, str, tuple.
Ця відмінність важлива, наприклад, при використанні словників – словники можна індексувати лише незмінними типами.
Приведення типів
Назви типів також є назвами вбудованих функцій, які виконуватимуть приведення. Типи змінних дуже важливі. Наприклад, вони впливають на значення операторів. Типовим прикладом є приведення числа до рядка:
x = 15
print(x) # напише 15
print(3*x) # напише 45
x = str(x) # приведення до рядка, x тепер містить "15"
print(x) # напише 15 (у цьому випадку не видно різниці)
print(3*x) # напише 151515 (тому що x – це тепер рядок, а операція * для рядків
# значить повторюваний запис до рядку)Рядок в Python
Написання рядків
Рядки пишемо в лапках або апострофах. У Python 3 рядки також можуть містити символи з діакритикою.
a = "Це рядок"
b = 'Це також рядок'
print(a, b)Індексація
Ми отримуємо доступ до окремих символів рядка за допомогою індексації з використанням квадратних дужок. Увага: індексуємо з нуля. Python (на відміну від більшості інших мов програмування) дозволяє індексувати навіть з кінця за допомогою від’ємних чисел.
text = "порося"
text[0] # перша літера => 'п'
text[1] # друга літера => 'о'
text[6] # шоста, остання літера => 'я'
text[-1] # остання літера => 'я'
text[-2] # передостання літера => 'с'Ми можемо використовувати двокрапку для індексування підрядка.
text = "панорама"
print(text[2:7]) # від другої до сьомої позиції => нора
print(text[:3]) # перші 3 символи => пан
print(text[-4:]) # останні 4 знаки => рамаБільш просунутим елементом є використання двох двокрапок, де третє значення вказує на довжину стрибка:
text = "Бігає-лисиця-по-полю"
print(text[5:15:2]) # з 5-ї по 14-ту позиції кожні 2 => -иияп
print(text[::3]) # від початку до кінця, кожні 3 => Бали--л
print(text[::-1]) # задом наперед =>юлоп-оп-яцисил-єагіБІтерація за рядком
Ми можемо легко переглядати окремі символи рядка за допомогою циклу for.
text = "соловій"
for letter in text:
print("літера:", letter)Незмінність рядків
Рядки є незмінним типом даних у Python. Це одна з рис, якими він відрізняється від списків. Незмінність означає, що ми не можемо змінити підлітеру в символі. Нам потрібно створити новий рядок, у якому буде змінена відповідна літера.
text = "кілець"
text[2] = "н" # TypeError - рядок не дозволяє змінювати символи
text = text[:2]+"н"+text[3:] # ми створюємо новий, змінений рядок
print(text)Операції з рядками
Рядки можна додавати (= об’єднувати). Ми також можемо множити рядки на ціле число (= багаторазово об’єднувати). Інші корисні операції включають пошук довжини (len) або перевірку на наявність підрядка (in).
text = "петр"
text + "ключ" # => петрключ
3*text # => петрпетрпетр
len(text) # => 4
"е" in text # => TrueРядки — це об’єкти, які мають низку доступних корисних методів, які ми викликаємо за допомогою крапкової нотації. Прикладами є перетворення у верхній/нижній регістр (upper, lower), розділення рядка відповідно до вказаного символу (split) або заміна підрядка (replace):
text = "Житомир"
text.upper() # => ЖИТОМИР
text.lower() # => житомир
text.split("о") # => ['Жит', 'мир']
text.replace("том", "хет") # => ЖихетирЗауважте, що тут ми використовуємо так звану точкову нотацію: ми пишемо text.upper(), а не звичайний виклик функції у формі upper(text). Це пов’язано з тим, що рядки представлено як об’єкти.
Операції з символами
Під час роботи з рядками іноді корисними є операції для маніпулювання окремими символами, особливо функції ord і chr, які перетворюють символи в цілі числа і назад:
ord(c)повертає порядковий номер символуc,chr(i)повертає символ із порядковим номеромi.
«Послідовний номер» означає номер у кодуванні Unicode. Для базових завдань програмування достатньо знати, що в цьому кодуванні букви розташовані за алфавітом (на жаль, це стосується лише літер англійського алфавіту). Ось як ми можемо написати літери англійського алфавіту:
start = ord('A')
for i in range(26):
print(chr(start + i))Списки в Python
Список (list) — це впорядкована колекція значень будь-якого типу.
Створення списку
Списки записуються з використанням квадратних дужок:
s = [] # порожній список
s = [8, 3, 45] # список із трьох чиселМи також можемо створити список за допомогою ключового слова list.
s = list("порося") # створює список ['п', 'о', 'р', 'о', 'с', 'я']Індексація
Ми отримуємо доступ до окремих елементів списку за допомогою індексації з використанням квадратних дужок. Увага: індексуємо з нуля. Ми можемо індексувати назад за допомогою від’ємних чисел:
s = ["пес", "порося", "вівця", "коза"]
s[0] # перший елемент списку => "пес"
s[1] # другий елемент списку => "порося"
s[-1] # останній елемент списку => "коза"
s[-2] # передостанній елемент списку => "вівця"Ми можемо використовувати двокрапку, щоб індексувати частину списку:
numbers = [37, 99, 42, 7, 13, 1, 1000]
print(numbers[2:5]) # => [42, 7, 13]
print(numbers[:3]) # => [37, 99, 42]
print(numbers[-2:]) # => [1, 1000]Операції зі списками
Корисні функції зі списками:
s = [8, 3, 45]
a = len(s) # довжина списку
s.append(7) # додавання елемента до списку
s.sort() # упорядкування елементів у списку
t = sorted(s) # сортує елементи в s і призначає цей новий список t
# s не змінитьсяЗауважте, що тут ми використовуємо так звану точкову нотацію: ми пишемо s.sort(), а не звичайний виклик функції у формі sort(s). Це пов’язано з тим, що списки представлено як об’єкти.
Списки та цикл for
Використовуючи цикл for, ми можемо перебирати елементи списку:
s = [8, 3, 45]
for x in s:
print(x)Крім того, ми можемо прокрутити елементи списку таким чином (це позначення ближче до того, як ми перебираємо списки в інших мовах програмування):
for i in range(len(s)):
print(s[i])Словники в Python
Словник (dictionary, dict) визначає зіставлення ключів зі значеннями. Наприклад, ми можемо запам’ятати кількість фруктів на складі.
Створення словника
Ми створюємо словник на Python за допомогою дужок.
fruits = {"apple": 5,
"banana": 10,
"orange": 2}
empty_dictionary = {} # порожній словникДоступ до елементів
Ми отримуємо доступ до словникових статей за допомогою індексації з квадратними дужками. Так само ми можемо додати запис до словника.
print(fruits["apple"])
fruits["pear"] = 3Якщо ми спробуємо одержати доступ до елемента, якого немає у словнику, ми отримаємо помилку. Безпечний доступ здійснюється за допомогою get:
print(fruits["plum"]) # => KeyError: 'plum'
print(fruits.get("plum", 0)) # якщо елемента немає у словнику,
# повертає вказане значення (0)Робота зі словниками
Інші корисні функції для роботи зі словниками:
len(fruits) # кількість ключів у словнику
fruits.keys() # ключі у словнику, tj. 'pear', 'orange', 'banana', 'apple'
fruits.values() # значення у словнику, tj. 10, 2, 3, 5
"apple" in fruits # перевірка наявності у словникуОб’єкти в Python
Python, як і більшість інших сучасних мов програмування, підтримує об’єктно-орієнтоване програмування. Це вже досить просунута тема програмування. Тут ми підсумовуємо лише деякі основні поняття.
Об’єкт (object) – це набір даних (змінних) і методів (функцій), які працюють з цими даними. У Python майже всі дані, з якими ми стикаємося, є об’єктами (числа, рядки, списки тощо).
Об’єкти — це спеціальні екземпляри класів (class). Клас можна розуміти як загальний шаблон, згідно з яким створюються об’єкти.
Приклад визначення класу:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print("My name is ", self.name)
print("I am ", self.age, "years old")І ось як ми створюємо об’єкти (екземпляри класу) і використовуємо їх:
homer = Person("Homer Simpson", 39)
bart = Person("Bart Simpson", 10)
homer.introduce()
bart.introduce()У цьому прикладі:
Person— це клас,homerтаbart— це об’єкти,nameтаage— це атрибути даних,introduce()— це метод,__init__— це метод ініціалізації, який автоматично викликається під час створення об’єкта.