Перша програма і функція print
Перша програма і функція print
Що ми напишемо
У цьому уроці ви напишете й запустите першу програму, навчитеся виводити текст у термінал і керувати форматом виводу. Також ви побачите перші помилки й навчитеся їх читати: помилки в Python неминучі, а їхні повідомлення вказують, що саме виправити.
🎯 Мета лекції
- Створити й запустити Python-скрипт.
- Викликати функцію
printз одним і кількома аргументами. - Керувати виводом через
sepіend. - Записувати коментарі та рядки з лапками й спеціальними символами.
- Прочитати повідомлення
SyntaxErrorіNameError.
🔑 Ключові терміни
- Функція: іменований фрагмент коду, який можна викликати.
- Аргумент: значення, яке передають у функцію.
- Рядок (
str): текст у лапках. - Коментар: текст у коді, який Python ігнорує.
- Traceback: повідомлення про помилку з вказівкою на місце в коді.
Пригадаємо попередній урок
python hello.py (на macOS і Linux — python3 hello.py).Перша програма: Hello, World!
Традиційно знайомство з мовою починається з програми, що виводить вітання. Створіть у редакторі VS Code файл hello.py з одним рядком:
print("Hello, World!")
Запустіть файл у терміналі:
python hello.py
Розберемо рядок за частинами:
print— ім'я вбудованої функції, яка виводить текст.(і)— дужки виклику. Вони обов'язкові, навіть якщо аргументів немає."Hello, World!"— аргумент: рядок (string), текст у лапках. Лапки показують початок і кінець тексту, у вивід вони не потрапляють.
Функція і її виклик
Функція (function) — іменований фрагмент коду, який виконує певну роботу. Щоб запустити функцію, пишуть її ім'я та круглі дужки: print(...). Це називається викликом (call). Якщо функції потрібні дані, їх вказують у дужках — це аргументи (arguments).
Функції бувають трьох видів:
- вбудовані — доступні одразу, наприклад
printіlen; - з модулів — їх спершу підключають, наприклад функції з модуля
math; - власні — їх пишете ви (тема одного з наступних уроків).
Для будь-якої функції корисно знати три речі: який вона має ефект (що робить), які приймає аргументи і який повертає результат. Для print:
- ефект: виводить аргументи в термінал;
- аргументи: значення будь-яких типів (текст, числа, інші);
- результат: немає. Функція повертає спеціальне значення
None.

Перевірте це самостійно:
result = print("x")
print(result)
print(type(print))
x
None
<class 'builtin_function_or_method'>
Перший print виводить x, а його результат None зберігається в result. Другий виводить цей результат. Третій показує, що print — це об'єкт-функція, а print(...) — її виклик. Ім'я без дужок функцію не запускає.
print «повертає» текст. Вона лише показує його. Якщо потрібно зберегти значення для подальшої роботи, print для цього не підходить.Аргументи print: позиційні та ключові
print приймає два види аргументів.
Позиційні (positional) — звичайні значення. Їх можна передати скільки завгодно, порядок має значення. print виводить їх через пробіл:
print("My", "name", "is", "Monty", "Python.")
print(1, 2.5, True, None)
My name is Monty Python.
1 2.5 True None
Ключові (keyword) — аргументи з іменем: ім'я=значення. Вони завжди йдуть після позиційних, їхній порядок не важливий. У print їх два:
sep(separator) — що вставити між аргументами. За замовчуванням пробіл.end— що вивести в кінці. За замовчуванням символ нового рядка\n, тому коженprintпочинає з нового рядка.
print("My", "name", "is", "Monty", "Python.", sep="-")
My-name-is-Monty-Python.

Параметр end дозволяє залишити вивід у тому самому рядку:
print("My name is", end=" ")
print("Monty Python.")
My name is Monty Python.
print() без аргументів виводить порожній рядок.
print(sep="-", "a", "b") викличе помилку. Для sep і end допустимі лише рядки або None: print("a", sep=1) завершиться помилкою TypeError: sep must be None or a string, not int.Коментарі
Текст після знака # Python ігнорує до кінця рядка. Такі коментарі (comments) пояснюють код людям:
# Виводимо привітання
print("Привіт!") # коментар можна писати й у кінці рядка
Привіт!
Коментар пояснює, чому код написано так, а не повторює те, що видно з самого коду.
Рядки: лапки та спеціальні символи
Рядок можна записати в подвійних або одинарних лапках: "текст" і 'текст' — це одне й те саме. Це дозволяє вставити один вид лапок усередину іншого:
print("Дон'т")
print('Він сказав "привіт"')
Дон'т
Він сказав "привіт"
Якщо потрібні ті самі лапки, їх екранують (escape): ставлять перед ними зворотний слеш \.
print("Лапки: \"так\" і 'так'")
Лапки: "так" і 'так'
Зворотний слеш вводить керувальні послідовності (escape sequences):
| Запис | Що означає |
|---|---|
\n | новий рядок |
\t | табуляція |
\" | подвійні лапки |
\' | одинарні лапки |
\\ | сам символ \ |
print("Рядок1\nРядок2")
print("Табуляція:\tтут")
print("Слеш: C:\\Users")
Рядок1
Рядок2
Табуляція: тут
Слеш: C:\Users
Важлива деталь: у коді \n — це два знаки, але Python читає їх як один символ нового рядка. Перевірка:
print(len("\n"))
1

Для шляхів у Windows зручний сирий рядок (raw string) з літерою r перед лапками: слеші в ньому не обробляються.
print(r"C:\new\table")
print(len(r"\n"))
C:\new\table
2
Рядок на кілька рядків записують у потрійних лапках:
print("""Три
рядки""")
Три
рядки
Перші помилки
Помилки неминучі. Python повідомляє, що пішло не так, і показує місце помилки. Повідомлення містить назву типу помилки та пояснення. Розглянемо два найчастіших типи.
SyntaxError: код записано неправильно
SyntaxError (синтаксична помилка) виникає, коли Python не може розібрати код. Програма не виконується взагалі, навіть рядки до помилки. Причина в тому, що Python компілює весь файл перед виконанням.
Не закритий рядок:
print("Hello)
File "hello.py", line 1
print("Hello)
^
SyntaxError: unterminated string literal (detected at line 1)
Відсутні дужки:
print "Hello"
File "hello.py", line 1
print "Hello"
^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
NameError: ім'я не існує
NameError виникає, коли код використовує ім'я, яке Python не знає. Помилка з'являється під час виконання, тому рядки до неї встигають спрацювати. Приклад з помилкою в назві функції:
prnt("Hello")

Повідомлення читають знизу вгору:
- Останній рядок — тип помилки та пояснення. Python 3.15 часто додає підказку
Did you mean: 'print'?. - Вище — рядок коду з підкресленням місця помилки.
- Ще вище — файл і номер рядка.
Інші типові причини NameError:
Print("Hello")
NameError: name 'Print' is not defined. Did you mean: 'print'?
Python розрізняє великі й малі літери, тому Print і print — різні імена.
print(Hello)
NameError: name 'Hello' is not defined
Без лапок Hello вважається іменем, а не текстом.
SyntaxError вказує на місце, де Python помітив проблему. Іноді реальна причина лежить у попередньому рядку, наприклад незакрита дужка. Якщо рядок із помилкою виглядає правильно, перевірте рядок вище.Підсумок
print(...)— виклик функції: ім'я знаходить функцію, дужки її запускають.printвиводить текст, а її результат —None.- Позиційні аргументи виводяться через
sep(пробіл за замовчуванням), після них вставляєтьсяend(\nза замовчуванням). - Коментар починається з
#і ігнорується. \nу коді — два знаки, у рядку — один символ.SyntaxErrorвиникає до запуску програми,NameError— під час виконання. Повідомлення читають знизу вгору.
Типові хибні уявлення
print лише виводить текст у термінал. Результат виклику — None. Щоб зберегти текст, його записують в іншу конструкцію (тема наступних уроків), а не в print.\n записано двома знаками, а в рядку це один символ. len("\n") дорівнює 1. У сирому рядку r"\n" слеш не обробляється, тому його довжина 2.print — функція, її викликають з дужками. Запис print "Hello" дає SyntaxError.Передбачте, перш ніж запускати
print("1", "2", "3", sep="+")
print("A", "B", sep="")
1+2+3
AB
Порожній рядок у sep означає, що між аргументами нічого не вставляється.
print("Hi", end="!")
print("there")
Hi!there
Перший print закінчується не символом нового рядка, а !, тому другий продовжує той самий рядок.
print(len("a\tb"))
3
У рядку три символи: a, табуляція \t і b.
Практичні завдання
Виведіть за допомогою кількох викликів print такий трикутник:
*
**
***
****
print("*")
print("**")
print("***")
print("****")
Кожен із фрагментів містить помилку. Запустіть їх, прочитайте повідомлення й виправте:
print("Привіт)
Print("Привіт")
print "Привіт"
print("a", "b", sep=1)
SyntaxError: unterminated string literal: бракує закривної лапки. Правильно:print("Привіт").NameError: name 'Print' is not defined: функція пишеться з малої літери. Правильно:print("Привіт").SyntaxError: Missing parentheses in call to 'print': потрібні дужки. Правильно:print("Привіт").TypeError: sep must be None or a string, not int:sepмає бути рядком. Правильно:print("a", "b", sep="1").
print і символи \n. Додайте коментар зверху.# Візитка
print("Олена Коваль\nКиїв\n+380 00 000 00 00")
Олена Коваль
Київ
+380 00 000 00 00
Файл лежить у C:\Users\Olena та цитату Вона сказала: "Привіт!", кожну на окремому рядку. Зробіть це двома способами: з екрануванням і без нього.print("Файл лежить у C:\\Users\\Olena")
print(r"Файл лежить у C:\Users\Olena")
print("Вона сказала: \"Привіт!\"")
print('Вона сказала: "Привіт!"')
int, float, str, bool, чому 0.1 + 0.2 не дорівнює 0.3 і що означає «усе в Python — об'єкт».Як комп'ютер виконує програму
Що відбувається між натисканням «Run» і результатом на екрані — процесор, пам'ять, мови програмування, компілятор та інтерпретатор, і чому Python спершу компілює код у байт-код. Встановлення Python і перший запуск.
Об'єкти, значення і типи
Усе в Python є об'єктом із типом, ідентичністю та значенням. Літерали, типи int, float, str, bool і None, функції type та id, системи числення, цілі числа довільної точності та чому 0.1 + 0.2 не дорівнює 0.3.