Кілька слів про помилки
Приступимо до програмування
Приклади, які ми розглядали до цього, були окремими директивами для Python (в інтерактивному режимі). І хоча вони наочно демонструють деякі можливості Python, це не справжні програми. Як вже відзначалось, програма - це набір директив, зібраних разом. Отже, давайте напишемо нашу першу програму на Python.
Перш за все програму потрібно десь записати. Якщо просто вводити програму в інтерактивному вікні, Python її не "запам'ятає”. Для цього нам буде потрібний текстовий редактор (такий як Блокнот в Windows), який зуміє зберегти програму на жорсткому диску. У середовищі IDLE вже є вбудований текстовий редактор, і він підходить нам набагато більше, ніж, скажімо, Блокнот. Щоб його відкрити, виберіть у меню середовища IDLE команду File -- New File. Відкриється вікно, показане на наступному малюнку. У його заголовку написано Untitled («Безіменний»), тому що ми ще не дали назву файлу.
Тепер наберемо нашу першу програму в редакторі:
print("Я - УКРАЇНЕЦЬ!")
print("Отже, я люблю БОРЩ!")
print("БОРЩ "*50)
print("Хочу ще...")
Коли закінчите, збережіть програму, вибравши в меню команду File -- Save або File -- Save as. Назвіть файл borsch.py. Можете зберегти його де завгодно (тільки не забудьте, де, щоб його можна було легко знайти в подальшому). Можливо, вам варто створити окрему папку для Python-програм. Букви .py в кінці імені файлу дуже важливі, тому що вони говорять комп'ютеру, що це програма, написана на Python, а не якийсь забутий текстовий файл. Ви, напевно, вже помітили, що редактор використовує різні кольори для різних слів в програмі. Деякі виділені червоним, інші - зеленим. Це все тому, що редактор середовища IDLE передбачає, що програма пишеться на Python. Це зроблено для того, щоб було простіше читати Python-код.
Запуск нашої першої програми
Після збереження своєї програми відкрийте меню Run (в IDLE-редакторі) і виберіть команду Run Module (як показано на наступному малюнку). В результаті програма буде запущена.
Вікно Python Shell (те, що першим з'явилося при запуску середовища IDLE) знову стане активним, і на екрані з'явиться щось на зразок цього:
Рядок зі словом RESTART говорить про те, що програма була запущена. (Він стане в нагоді, коли ви будете багаторазово тестувати і запускати свої програми.) За цим рядком йдуть виведені програмою дані. Так, вона робить поки не дуже багато, але нам вдалося домогтися від комп'ютера того, що ми хотіли. Наші програми з часом ставатимуть все більш і більш цікавими.
Якщо щось йде не так
Що станеться, якщо в коді виявиться помилка і програма не виконається? Існує два види помилок, які можуть статися. Давайте розглянемо обидва варіанти, щоб знати, що робити в обох випадках.
Синтаксичні помилки
IDLE перевіряє вашу програму ще до її запуску. Якщо буде виявлено якась помилка, то це, як правило, синтаксична помилка. Синтаксис - це правила орфографії і граматики в мові програмування, тому синтаксична помилка означає, що ви написали щось, що не відповідає правилам Python. Наведемо приклад:
print("Я - УКРАЇНЕЦЬ!")
print("Отже, я люблю БОРЩ!")
print("БОРЩ "*50)
print(Хочу ще...")
Ми пропустили лапки між словом print і рядком “Хочу ще…". Якщо ви спробуєте запустити цю програму, то побачите повідомлення:
Після цього потрібно перевірити свій код, щоб зрозуміти, що з ним не так. Редактор середовища IDLE виділить червоним кольором місце помилки. Можливо, це не буде сама помилка, але вона має бути присутня десь поблизу.
Помилки виконання
Другий вид помилок - це ті помилки, які Python (або IDLE) не може виявити до запуску програми. Такі помилки виявляються тільки при виконанні програми, тому вони називаються помилками виконання. Наведемо приклад подібної помилки в програмі:
print("Я - УКРАЇНЕЦЬ!")
print("Отже, я люблю БОРЩ!")
print("БОРЩ "+50)
print("Хочу ще...")
Якщо зберегти цю програму і спробувати її виконати, вона запуститься. Перші два рядки з'являться на екрані, але потім піде повідомлення про помилку:
Рядок, що починається зі слова Traceback, - це початок повідомлення про помилку. Наступний рядок вказує на місце помилки - назва файлу і номер рядка. Потім йде рядок з невірним кодом. Це допомагає виявити проблему в коді. Остання частина повідомлення про помилку вказує на те, в чому, власне, помилка. Коли ми ближче познайомимося з Python і програмуванням, нам буде легше зрозуміти сенс цього повідомлення. В Python не можна скласти два об'єкти різних типів, наприклад текст і число. Саме тому команда print("БОРЩ "+50) повертає помилку. Це все одно що сказати: «Якщо до п'яти пиріжків додати три гривні, скільки цукерок у мене буде?» Додавання в даному випадку безглуздо. Однак ми можемо множити практично все, що завгодно, щоб отримати більшу кількість чого-небудь. (Якщо купити два пиріжки по 5 гривень, то ми витратимо десять гривень!) Ось тому команда print("БОРЩ "*50) працює правильно.
Наша друга програма
Перша програма нічого особливого не робила. Вона просто вивела дещо на екран. Давайте спробуємо створити що-небудь цікавіше.
Наступний код - це проста гра, в якій потрібно вгадати число. Створіть новий файл в IDLE-редакторі так само, як ми це робили в перший раз, тобто командою File -- New File. Введіть вказаний код, а потім збережіть його. Ви можете назвати файл з кодом як завгодно, головне, щоб назва закінчувалося розширенням .py. Ну, наприклад FirstGame.py.
import random
secret = random.randint(1, 99)guess = 0
tries = 0
print("Привіт, друже! Я - це ти, тільки з майбутнього!")
print("Я вже вмію програмувати, і спеціально для тебе створив цікаву гру!")
print("Тобі потрібно відгадати задумане число від 1 до 99, для цього ти матимеш лише 6 спроб!")
print("То що, розпочнемо?")
while guess != secret and tries < 6:
guess = int(input("Твій варіант: "))
if guess < secret:
print("Це занадто мало, як для такої корисної гри!")
elif guess > secret:
print("Це занадто багато, я навіть таких чисел не знаю!")
tries = tries + 1
if guess == secret:
print("Досить, досить, ти вгадав, о НАЙРОЗУМНІШИЙ!!!")
else:
print("Ну ось і все! Твої спроби закінчились!")
print("Я загадав число: ", secret)
print("Надіюсь, тепер ти розумієш, що програмування - це цікаво!")
Не переймайтесь через появу повідомлень про помилки. Вони призначені для того, щоб допомогти нам розібратися, в чому проблема і як її вирішити. Якщо з програмою щось не так, нам корисно побачити повідомлення про помилку. Помилки, які не викликають появи таких повідомлень, набагато складніше виправити.
У програмі всього 20 директивних рядків для Python плюс кілька порожніх рядків, щоб було зручніше читати. У вас не повинно піти багато часу на те, щоб набрати весь код. Не переживайте, якщо не зрозумієте, що означає кожна з директив. Зовсім скоро ми дійдемо і до цього.
Коли будете набирати код, зверніть увагу на відступи в рядках, наступних за командою while, і на ще більші відступи в рядках, наступних за командами if і elif. Також зверніть увагу на двокрапки в кінці деяких рядків. Якщо поставити двокрапку в потрібному місці, редактор допоможе вам, почавши новий рядок з абзацу. Збережіть код та запустіть програму командою Run -- Run Module, як ми це робили в минулий раз. Спробуйте пограти в гру і подивитися, що вийде. Ось що вийшло у мене:
Привіт, друже! Я - це ти, тільки з майбутнього!
Я вже вмію програмувати, і спеціально для тебе створив цікаву гру!
Тобі потрібно відгадати задумане число від 1 до 99, для цього ти матимеш лише 6 спроб!
То що, розпочнемо?
Твій варіант: 50
Це занадто багато, я навіть таких чисел не знаю!
Твій варіант: 25
Це занадто мало, як для такої корисної гри!
Твій варіант: 37
Це занадто мало, як для такої корисної гри!
Твій варіант: 43
Досить, досить, ти вгадав, о НАЙРОЗУМНІШИЙ!!!
Надіюсь, тепер ти розумієш, що програмування - це цікаво!Мені знадобилося 4 спроб, щоб вгадати число 43.
З командами while, if, else, elif і input ми познайомимося в майбутньому. Але вже зараз ви, напевно, зрозуміли в загальних рисах, як працює програма.
- Програма вибирає випадкове секретне число.
- Користувач намагається його вгадати.
- Програма порівнює кожне припущення з секретним числом, быльше воно або менше?
- Користувач продовжує спроби, поки він не вгадає число або поки спроби не закінчаться. Коли припущення збігається з секретним числом, гравець виграє.
Використана література:
- У. Сэнд, К. Сэнд "Hello World! Занимательное программирование."
- Python для детей. Самоучитель по программированию / Джейсон Бриггс
- Программирование для детей / К.Вордерман, Дж. Вудкок, Ш. Макаманус