курси програмування для дітей безкоштовно

12. Випадкові події. Random у python

Урок на тему Випадкові події Random у python

Невипадкові випадковості з модулем random у python

На цьому уроці ми створимо різноманітні випадкові події. Random у python допоможе згенерувати випадкове число чи обрати випадкову дію і, навіть, створити випадкову історію!

У комп’ютерних програмах часто потрібна емуляція випадкових подій. Наприклад, при розробці ігор або тестування. Такі події й створює модуль random у python. Насправді комп’ютер не може створити абсолютну випадковість, але в середині працюють алгоритми, котрі забезпечують досить гарний рівень випадковості. Для звичайного користувача подія чи число буде виглядати випадковим і лише математики, можуть називати цей процес “майже випадковим”.

Модуль random надає безліч функцій, корисних у різних ситуаціях, але ми поки що зупинимося на кількох:

random (): генерує випадкове число від 0.0 до 1.0
randint(min, max) – генерація цілого числа в заданому діапазоні між min та max.
randrange (start, stop, step): повертає випадкове число з певного набору чисел у діапазоні між start (включно) та stop (не включно) з кроком step
shuffle() – бере послідовність і повертає її в перемішаному стані.
choice() – вибір випадкового елемента із заданого набору.

import random
  
print(random.random())   # значення від 0.0 до 1.0
print(random.random() * 100)  #значення від 0.0 до 100.0
   
print(random.randint(20, 35)) # значення від 20 до 35

print(random.randrange(30, 90, 10)) # повертає кругле число (бо крок 10) від 30 до 90 (90 не включається)

list1=["a","b","c","d"]  
print(random.shuffle(list1))  # перемішує елементи списку випадковим чином

print(random.choice(list1)) # повертає випадковий елемент списку

Випадкове ціле число randint() 

1: Зробимо програму особистого тренера, яка буде випадково генерувати нам тренування і казати скільки разів робити кожну вправу. 

import random
print (“Програма-тренер”)
a=random.randint(20,50)
print (f”Стрибай {a} разів”)

Урок інформатики на тему Випадкові події. Random у python | ITisFuture

Важливо! Підключення бібліотеки import random достатньо робити один раз на початку програми.

Як ви, мабуть, вже зрозуміли, у random.randint передається два числа. Команда генерує випадкове число від першого до другого (включно)

2: Додайте ще 2 вправи так, щоб діапазон випадкових значень відрізнявся.

3: Напишімо тренажер з таблички множення. Програма буде генерувати два випадкових числа 12 разів і видавати приклад. Користувач вводитиме відповідь, а програма казатиме чи вона правильна. Ось план програми

цикл від 1 до 🤖: 
   a=випадкове_число_від_1до_10
   b=випадкове_число_від_1до_10
   res=одне_число_помножене_на_інше
   answer=int(input(f"{a} * {b}="))
   якщо (відповідь користувача дорівнює результату):
       вивести "Вірно!Молодець!"
   якщо ні:
       вивести "Не вірно"

4: Додайте до завдання 3 змінну, яка буде рахувати кількість правильних відповідей. Після всіх запитань програма показує, скільки правильних відповідей дав юзер.

Випадкова послідовність  shuffle() 

Фристайл— зимовий олімпійський вид спорту, загальна назва для різноманітних дисциплін, в яких лижники змагаються не тільки на швидкість проходження певної дистанції, а й у виконанні лижних трюків.

5: Уявіть собі, що на участь у змаганні з фристайлу зареєструвалися спортсмени з багатьох країн. І нам треба випадково визначити хто за ким буде виступати та показувати свої трюки. Для цього створіть список з 3-5 країн. І випадковим чином визначте послідовність виступів.

import random
countries=["Японія","Швеція","Україна","Данія","Мексика"]
random.shuffle(countries)
print(countries)

Випадковий елемент списку choice() 

Програма-задача на python Фантастична історія Random у python | ITisFuture

Випадкові фантастичні програми з Random у Python

6: Зараз ми створимо випадкову історію за допомогою random.choice(). Ця функція обирає один випадковий елемент зі списку. Подивімось, як вона працює, на наступному прикладі

6.1: Для цього спершу додайте такі списки:

woman = [ "Вчена", "Королева", "Піратка", "Гігантська кролиця"]
man = [ "поліцейського", "художника", "дідуся", "робота-кіборга"]
place = [ "на Плутоні", "в супермаркеті", "в страшній печері з кажанами"]
she_wore = [ "Коcтюм для підводного плавання", "крила феї", "паперовий пакет"]
he_wore = [ "фіолетовий костюм.", "костюм акули.", "пляжний рушник."]
womanSays = [ "Хто ти?", "Розумієш, в чому справа?", "Котра година?"]
manSays = [ "біп-буп", "Не їж жаб!", "За що?"]
consequence = [ "мир у всьому світі.", "хаос.", "гиганская нога розчавила їх.", "веселки"]
worldSays = [ "Безглузда нісенітниця!", "Сир зараз в моді!", "Я тану!"]

6.2: Для початку історії потрібно вибрати персонажів. Для цього після списків  додайте:

print (f"{random.choice (woman)} зустріла {random.choice (man)} {random.choice (place)}")

6.3: Аналогічно зробіть з іншими списками, щоб вийшла історія:

{Woman} зустріла {man} {place}
Вона була одягнена в {she_wore}
Він був одягнений в {he_wore}
Вона сказала: {womanSays}
Він сказав: {manSays}
В результаті сталося: {consequence}
Світ сказав: {worldSays}

6.4: Видаліть з кожного списку по одному елементу, який вам найменше подобається

6.5: Додайте в кожен список ще один або кілька елементів на ваш смак для ще цікавіших історій

Якщо призабути функції списків, перейдіть на урок по списках, щоб згадати.

У грі з казино виграє тільки казино. Програма, яка покаже, чому ніколи не можна виграти у казино.

7: Слот-маши́на. Напишімо програму грального автомата. Це така гра, в якій автомат 3 рази генерує випадковий фрукт. І:

Якщо випало 3 однакових фрукти, то юзер виграв 3 долари.
Якщо випало 2 однакові фрукти, то юзер виграв 1 долар.

Якщо випали різні фрукти – юзер втратив 10 доларів.

Програма має писати суму, яку виграв або програв юзер. Фруктів має бути не менше 5-ти (обери фрукти самостійно).

Якщо не знаєте з чого почати ось план програми, який може допомогти:

import random
fruits=['список','з','різних','фруктів','які','виводить','гральний','автомат']
a1=випадковий елемент зі списку фруктів
a2=випадковий елемент зі списку фруктів
a3=випадковий елемент зі списку фруктів
Вивести "Тобі випало a1 a2 a3"
якщо всі елементи однакові:
  написати "Ви виграли 3 долари!"
якщо є два однакових елементи з трьох:
  написати "Ви виграли 1 долар!"
якщо ні:
  написати "Ви програли 10 доларів!"

Додаткові завдання: Random у python

8: Ускладнюємо ігровий автомат:  Додайте програмі можливість грати багато разів за допомогою циклу. В циклі кожного разу запитують користувача “Грати ще?”, відповідь “так”, то програма генерує фрукти ще раз. Якщо відповідь інша – то програма зупиняється.

9: Ускладнюємо попередню гру: Перед початком гри запитай у користувача, скільки грошей той хоче поставити.  Кожен раз, коли користувач виграв до поставленої суми додаються відповідні долари. Кожен раз коли програв – віднімаються. Виводьте суму на рахунку користувача на екран після кожної гри.

10: “Нечесне казино”. Змініть гру так, щоб наше “казино” стало нечесним, тобто воно має створювати такі фрукти, щоб користувач завжди програвав. (Як це зробити придумайте самостійно)

11 LU: Напишіть програму-тренажер з математики. Програма має випадково генерувати числа й обирати випадкову математичну дію (додавання, віднімання, множення або ділення). Для додавання і віднімання числа мають генеруватися в межах 100. Для множення і ділення приклади мають бути з таблички множення. Програма виводить приклад і каже чи правильно порахував користувач. В кінці програма має написати кількість правильних відповідей.

12: Випадкове привітання: створіть список своїх друзів чи родичів. Створіть інший список з привітаннями та побажаннями (вітати можна з якимось святом, чи просто з гарним днем). 

Нехай програма обирає випадкову людину зі списку і випадкове привітання і друкує це привітання та кому воно адресоване.

Відео по темі

Уроки програмування для дітей. Домашня робота

Домашня робота

1: Закінчи випадкову історію, яку робили на занятті. Допиши по 2 своїх варіанти у кожен список (персонажі, дії…).

2: Орел чи решка? Уявіть себе новим ведучим тревел-шоу Орел і Решка (це програма, де двоє ведучих подорожують і в одного є лише 100 доларів на два дні у якомусь місці, а у іншого необмежені кошти на золотій картці. ) 

  1. Запишіть в змінну day випадкове число від 20 до 40. Це буде кількість днів для зйомок нового сезону програми, а отже, для подорожей!
  2. Створіть список міст, в які будемо подорожувати (3-4 шт). Перемішайте список за допомогою  shuffle(), щоб маршрут був випадковим.
  3. Створіть список друзів (3-4) і випадково оберіть одного друга на роль другого ведучого. Його ім’я запишіть в змінну friend.
  4. Створіть список з двох слів: “Орел”, “Решка”.
    Якщо випаде Орел, запиши в змінну coin=”В першому місті я буду з золотою карткою!”
    Якщо випаде Решка, запиши в змінну coin=”В першому місті я буду зі 100 доларами”
  5. Виведіть на екран отримані дані, наприклад так:
    “Це новий сезон шоу Орел і Решка з новими ведучими!! За 25 днів я і Мілана відвідаємо такі міста: [‘Одеса’, ‘Барселона’, ‘Осло’, ‘Нью-Йорк’]. В першому місті я буду зі 100 доларами

Підказка: все, що написано синім береться зі змінних

3: Напишіть програму, яка запитує користувача, як його звуть i визначає, в який факультет потрапить користувач: Ґрифіндор, Хафелпаф, Рейвенкло чи Слизерин (Gryffindor, Slytherin, Ravenclaw, and Hufflepuff) . Твоя програма повинна визначати факультет випадково.

4: Створіть два списки: в перший запишіть членів вашої родини. В другий – список домашніх обов’язків. Програма повинна випадковим чином розподілити обов’язки між членами сім’ї.
Підказка: 

family=['me', 'mom', 'dad', 'sister Zlata', 'brother Danya']
print (family[0])

family[0] – так можна працювати з першим членом родини. family[1] – другий член родини

Програма-задача про сім'ю Random у python | ITisFuture

5 (Додаткове-Необов’язкове): Напишіть програму Магічної Восьмої Кулі (деталі нижче).

Magic 8 ball (Магічна восьма куля) – це така куля передбачень, жартівливий спосіб передбачити майбутнє. У цій кулі є віконце, в якому з’являється відповідь, на питання, яке задає людина. У кулі всього 20 варіантів відповідей.
Ось приклад такого кулі онлайн: https://8-gund.com/en/

У вашій програмі має бути можливість поставити запитання. Куля має випадково вибрати відповіді на ці питання. Питання ставить користувач. Можливі відповіді, які може дати ваша куля українською та англійською(мову оберіть самі):

answersUa=[
# Позитивні:
   'Безперечно', 'Очевидно, що так', 'Ніяких сумнівів',
   'Безумовно так', 'Можеш бути впевнений в цьому',
# Нерішуче позитивні
   'Мені здається - «так»', 'Найімовірніше', 'Хороші перспективи',
   'Знаки кажуть - «так»', 'Так',
# Нейтральні
   'Поки не ясно, спробуй знову', 'Запитай пізніше', 'Краще я промовчу',
   'Зараз не можна передбачити', 'Сконцентруйся і запитай знову',
# Негативні
   'Навіть не думай »,« Моя відповідь - «ні»', 'За моїми даними - «ні»',
   'Перспективи не дуже хороші', 'Дуже сумнівно']
answersEng=[
#Позитивні:
  'It is certain', 'It is decidedly so', 'Without a doubt',
  'Yes — definitely', 'You may rely on it',
#Нерішуче позитивні
  'As I see it, yes', 'Most likely', 'Outlook good', 'Signs point to yes', 'Yes',
#Нейтральні
  'Reply hazy, try again', 'Ask again later', 'Better not tell you now',
  'Cannot predict now', 'Concentrate and ask again',
#Негативні
  'Don’t count on it', 'My reply is no', 'My sources say no',
  'Outlook not so good', 'Very doubtful']

Приклад роботи:

Задайте питання кулі: Чи варто мені почати робити зарядку вранці?
Куля пророкує: Знаки кажуть - «так»

Задайте питання кулі: Чи варто мені піти на балет?
Куля пророкує: Перспективи не дуже хороші
Уроки програмування для дітей ускладнені завдання level up

Level Up!

1: Математики кажуть, що сума кутів трикутника завжди дорівнює 180 градусів. Створіть програму, яка випадковим чином генерує два числа від 1 до 180. Якщо їх сума <=179, то програма визначає, якому числу дорівнює третій кут. Якщо  їх сума >179, то програма пише числа і каже, що трикутник створити неможливо.

2: Напишіть програму вгадування числа. Комп’ютер записує в змінну випадкове число від 1 до 100.  Юзер намагається вгадати число. Програма пише чи загадане число більше ніж здогадка користувача чи менше і пропонує вгадати ще раз. Якщо користувач вгадав – програма про це пише і не запитує більше.

Підказка1: Тестувати програму варто на діапазоні чисел від 1 до 10. І, вже коли все працює, змінити діапазон чисел на від 1 до 100.

Підказка2: Краще використати цикл while, ніж for.

Приклад роботи:

Вгадай число від 1 до 100. Яке число я загадав?  50
твоє число замале
Вгадай число від 1 до 100. Яке число я загадав?  75
твоє число завелике
Вгадай число від 1 до 100. Яке число я загадав?  63
твоє число завелике
Вгадай число від 1 до 100. Яке число я загадав?  57
твоє число завелике
Вгадай число від 1 до 100. Яке число я загадав?  53
твоє число завелике
Вгадай число від 1 до 100. Яке число я загадав?  52
твоє число завелике
Вгадай число від 1 до 100. Яке число я загадав?  51
Супер!!! Число відгадано!

Не зупиняйтесь у вивченні Python! До зустрічі на наступних уроках!

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *