Кілька слів про помилки

Приступимо до програмування 

Приклади, які ми розглядали до цього, були окремими директивами для 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-код.

Запуск нашої першої програми

Після збереження своєї програми відкрийте меню RunIDLE-редакторі) і виберіть команду 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 ми познайомимося в майбутньому. Але вже зараз ви, напевно, зрозуміли в загальних рисах, як працює програма. 

  1. Програма вибирає випадкове секретне число. 
  2. Користувач намагається його вгадати. 
  3. Програма порівнює кожне припущення з секретним числом, быльше воно  або менше? 
  4. Користувач продовжує спроби, поки він не вгадає число або поки спроби не закінчаться. Коли припущення збігається з секретним числом, гравець виграє.

Використана література:

  1. У. Сэнд, К. Сэнд "Hello World! Занимательное программирование."
  2.  Python для детей. Самоучитель по программированию / Джейсон Бриггс 
  3. Программирование для детей / К.Вордерман, Дж. Вудкок, Ш. Макаманус