вівторок, 27 квітня 2021 р.

Стратегія гри та організація інтерфейсу


Код гри Лепрекон-1:


from random import randint

print('Хочешь разбогатеть, путник? Угадай мое число!')

a = randint(1,100)

b=int(input())

while a!=b :

    if a>b :

        print('Мое число больше!')

    else :

        print('Мое число меньше!')

    print('Попробуешь еще?')

    b=int(input())

print('Черт возьми! Ты угадал! Забирай мое золото!')



середа, 17 березня 2021 р.

Створення складних візерунків у Python.

 Вместе с Питоном установится IDLE (Integrated Development and Learning Environment) — это интегрированная среда разработки и обучения на языке Python. В ней удобно видеть результаты выполнения отдельных команд.


Среда IDLE для Питона


Чтобы создать новую программу, запустите IDLE Python  и дайте команду File/New File, чтобы создать новый файл программы. Наберите программный код и запустите его на выполнение командой Run - Run Module  или F5



Розділ цитується за підручником Бондаренко О.О., Ластовецький В.В.,. Пилипчук О.П., Шестопалов Є.А. Інформатика. 5 клас.


Щоб написати програму на тій чи іншій мові програмування, необхідно знати алфавіт мови, правила запису команд цією мовою і правила їх використання в програмі.

Алфавіт мови Python

Програмний код на Python містить слова англійської мови і символи. При створенні програм можуть використовуватися такі символи:
  • літери латинського алфавіту A..Z, a..z;  цифри 0..9;
  • знаки арифметичних операцій, спеціальні символи: + – * / \^ = < > ( ) . , : ; ‘ #  _; комбінації символів: <=, >=, <>, = =; !=,**;
  • службові слова, що мають фіксований для Python зміст, наприклад: and, elif, if, print, as, else, import тощо.

Синтаксис мови – сукупність правил побудови команд мови програмування.

Семантика мови – сукупність правил виконання комп’ютером команд, записаних мовою програмування.

Величини в мові Python

Окремий інформаційний об’єкт (число, символ, рядок та ін.) називають величиною. 

Основними характеристиками величин є назва, вид, тип і значення

Вид величини визначає спосіб використання величини в програмі. Величина може бути константою (тобто постійною) або змінною.

Константи — це величини, значення яких не можуть змінюватися в ході виконання програми. Прикладом константи може бути число (5, 1.23) або рядок: "Це рядок!". Змінні — величини, значення яких можуть змінюватися в  ході виконання програми.

Змінна – це іменована частина пам’яті твого комп’ютера, де ти тримаєш певну інформацію. На відміну від констант змінним дають імена (ідентифікатори).

Існують певні правила, яким потрібно слідувати при іменуванні змінних:

  1. Першим символом імені має бути літера чи знак нижнього підкреслювання '_'.
  2. Решта імені може складатися з літер, чисел або знаків нижнього підкреслювання.
  3. Не можна використовувати спеціальні символи, такі, як /, # або @.
  4. Не можна використовувати пробіли.
  5. Імена змінних чутливі до регістру. Наприклад, myname і myName  – це різні змінні.
  6. Не можна називати змінні іменами команд, наприклад, print.

Приклад 1. Правильними ідентифікаторами є i, __my_name, name_23, a1, b2. Приклад неправильних імен: 2things, this is spaced out, my-name.

Коментарі в програмі

Коментар — це текст, призначений для читання людиною, а не комп’ютером.  Коментар – це підказка для нас, яку дію виконує програма.

Щоб комп’ютер відрізнив команди від коментарів, у мові Python перед текстом коментаря ставиться знак ’#’. Редактор IDLE виділяє коментарі червоним кольором, нагадуючи про те, що Python проігнорує ці фрагменти коду.

Приклад 2.  Коментар пояснює призначення наступної команди:
# Запит імені користувача
s = input(‘Як тебе звати? ‘)

Типи величин в мові Python

Тип величини визначається обсягом пам’яті, необхідним для її збереження,  множиною припустимих значень величини, та операціями, які можна над нею виконувати.

Основними типами величин є числа і рядки.

В Python є два типи числових даних: цілі числа (int), тобто числа без дробової частини, і дійсні (float)  – дробові числа з десятковою крапкою.

Цілі числа потрібні для рахунку (перший, другий, третій…). Кількість учнів у класі, вік людини, кількість предметів ми зазвичай указуємо за допомогою цілих чисел. Числа з плаваючою крапкою, або десяткові дроби, потрібні, коли ми  хочемо указати частину чого-небудь, наприклад, 3.5 м, 1.25 грн.  Звісно, у програмі ми  не будемо указувати одиниці вимірювання (метри, гривні), лише число з дробовою частиною.

В  якості роздільника між цілою і дробовою частиною числа використовуйте крапку.

Рядок – це взята в одинарні лапки послідовність будь-яких символів – цифр, літер, розділових знаків. У змінних рядкового типу ми зберігатимемо фрагменти тексту.

Оператори Python

Математичні оператори Python
Операція
Символ оператора
Приклад
Результат
Додавання
+
Res = 15+3
Res = 18
Віднімання
A = Res – 10
A = 8
Множення
*
A = A*2
A = 16
Ділення
/
Res = 5 / 2
Res = 2.5
Обчислення неповної частки від ділення
//
Res = 5 // 2
Res = 2
Обчислення остачі
%
Res = 5 % 2
Res = 5
Піднесення до степеня
**
A = 4**2
A = 16

Випадкові числа

Випадкові числа часто застосовують у програмуванні при створенні ігрових або тестових програм тощо. Щоб отримати випадкове число, необхідно за допомогою команди import завантажити в Python функцію  randint. Функція randint(х1,х2) вибирає ціле випадкове число в діапазоні від х1 до х2.

Приклад 7. Отримання випадкового числа в діапазоні від 1 до 10.

>>> from random import*
>>> randint (1,10)
8
>>> randint (1,10)
6

Синтаксичні помилки

Якщо Python не може зрозуміти введену вами команду, то він може вивести у відповідь повідомлення про помилку з текстом  «SyntaxError». Місце помилки у вікні консолі помічається червоним кольором. Після команди, що містить помилку, виводиться повідомлення про помилку.

Уважно читайте це повідомлення – це допоможе зрозуміти, в чому помилка, і виправити її.

Приклад 8. У виразі допущено помилку: надруковано зайву дужку. В консолі з’являється повідомлення про синтаксичну помилку.

>>> (x+5))


SyntaxError: invalid syntax

вівторок, 9 березня 2021 р.

Алгоритми з повтореннями. Цикл FOR. Спіралі з черепашкою

 


Відеолекція для самостійної підготовки:

Розділ цитується за підручником Бондаренко О.О., Ластовецький В.В.,. Пилипчук О.П., Шестопалов Є.А. Інформатика. 5 клас.


Повторення (цикл) — це алгоритмічна структура, за допомогою якої та сама послідовність дій виконується кілька разів. Для запису алгоритмів із повторенням (циклів) мовою Python використовують 2 види операторів циклу: з параметром та з умовою. Серію команд, що повторюється під час виконання циклу, називають тілом циклу. Кожне виконання тіла циклу називають ітерацією.


Повторення команд

Цикл for повторює блок команд (тіло циклу) задану кількість разів, позбавляючи необхідності декілька разів писати одні і ті самі команди.
Синтаксис, або правила запису циклу for, виглядає наступним чином:
for х in range(n) :
          <тіло циклу>

В першу чергу ми вказуємо ключове слово for, після чого указуємо змінну х, яка буде лічильником циклу. Ключове слово in наказує Python по черзі надати змінній x всі значення в діапазоні від 0 до n-1. Не забувайте, що комп'ютер зазвичай починає рахувати з 0, а не з 1, як люди. Вбудована функція range повертає безперервну зростаючу послідовність цілих чисел, які можна використовувати в якості індексів всередині циклу.

Щоб дати зрозуміти комп'ютеру, які команди слід повторити, використовуються відступи. Можна зробити відступ для кожної повторюваної в тілі циклу команди, натискаючи для цього клавішу Tab у вікні нового файла.

Приклад 1. Проаналізуйте зміну значень лічильника х в циклі for. Функція range(4) задає список значень [0, 1, 2, 3]:
for x in range(4) :
        print (x)

Приклад 2. Для малювання трикутника ми тричі, для кожної сторони трикутника, давали Черепашці команди forward(100) і right(120). Замість цього можна повторити ці команди в циклі.
from turtle import *
for х in range(3) :
forward(100)
right(120)





Лічильник циклу for
Змінна-лічильник циклу веде відлік, скільки разів повторився цикл, почергово набуваючи всіх значень з указаного діапазону.
Приклад 3. Діапазон значень може бути заданий у вигляді текстового рядка. Лічильник почергово приймає значення літер, з яких складається указаний рядок:
a = 'Рядок'
for x in a  :
       print ('->', x)



Крім рядків або числових значень змінна може містити списки. Список – це набір значень, розділених комами, взятий у квадратні дужки. У списках можна зберігати значення будь-якого типу, будь то числа або рядки.



Приклад 4. Діапазон значень може бути заданий у вигляді списку значень, взятого в квадратні дужки. Лічильник почергово приймає значення зі списку:
b = [2, 4, 6, 8, 10]
for x in b  :
       print ('->', x)


Якщо список значень лічильника достатньо великий, і числа в списку змінюються з певним кроком, можна застосувати функцію  range з такими параметрами:

range (від, до, крок)

Відлік починається зі значення «від» і завершується на 1 раніше за значення «до».




Приклад 5. Функція range (2,11,3) надає змінній х значення від 2 до (11-1) з кроком 3, тому, хоча 8+3=11, значення 11 вже до діапазону значень не входить.
for x in range(2, 11, 3) :
       print ('->', x)


Приклад 6. Якщо потрібно вести зворотній відлік (в бік зменшення значень), укажіть значення «від» більшим, ніж значення «до», а «крок» повинний бути від’ємним:
for x in range(5, 1, -1) :


Використання циклу for для створення малюнків
Проаналізуємо виконання програми:
from turtle import *
for x in range(1,100,2) :
    forward(x)
    left(90)
При кожному проході циклу Черепашка малює лінію довжиною х пікселів  і повертається вліво на 90° (рис. 31.1). Ви знаєте з курсу математики, що навколо точки можна виконати повний поворот на 360°. Таким чином, за 4 ітерації циклу Черепашка повертається до початкового напрямку  (4*90°=360°).  Програма малює спіраль, тому що кожний відрізок на 2 пікселі довший за попередній: перший відрізок має довжину 1 піксель, другий – 3, останній (50-й) – 99.
Поворот на  90° створює квадратну спіраль. Змінимо кут повороту на 2°: left(92) . Зміна всього лише 1 числа призводить до значних змін у вигляді спіралі (рис.31.2).
       print ('->', x)


Змінимо команду forward(x) на circle(x), яка малює коло радіусу х з поточної позиції.
for x in range(1,100,2) :
    circle(x)
    left(90)
Отримаємо 4 набори  кіл, тому що після малювання кожного кола Черепашка повертається вліво на  90° (рис.31.3). Щоб намалювати n кіл, потрібно повертати Черепашку на 360°/n градусів. Внесемо такі зміни до програми, щоб Черепашка малювала 6 наборів кіл (360°/6=60°, рис. 31.4):
   for x in range(1,100,2) :
    circle(x)
    left(60)
Як зробити наші спіралі різнокольоровими?
Для цього нам потрібен список кольорів, а не один колір, тому ми створимо змінну-список з ім'ям colors і помістимо в цей список чотири кольори:
colors = ['red', 'yellow', 'green', 'blue']
Зверніть увагу, що ми помістили список кольорів у квадратні дужки. Звернутися до значення зі списку з номером х можна як до colors[x]. Наприклад, colors[0] ='red', colors[3] ='blue'.
Складне питання: як змусити черепашку при кожній ітерації циклу, коли х змінюється від 1 до 99, обирати одне з 4-х значень списку?  Використаємо операцію % (остача від ділення). При обчисленні виразу x % 4 ми можемо отримати 4 значення остачі (0, 1, 2, 3), що відповідає номерам кольорів в списку colors.  Повернемось до програми малювання квадратної спіралі, але крок циклу зробимо рівним 1 (рис.31.5):
from turtle import *
colors = ['red','yellow','green','blue']
for x in range(100) :
    color(colors[x% 4])
    forward(x)
    left(90)


Таким чином, вносячи  нескладні зміни до операторів малювання в тілі циклу for, ми можемо отримувати складні цікаві зображення.