Модуль 7C: Модулі та бібліотеки

Стандартна бібліотека (random, datetime, math)

📖 Теорія
Стандартна бібліотека — модулі, які йдуть з Python. Не потрібно встановлювати.

math — математичні функції:
• math.sqrt() — корінь
• math.ceil() / math.floor() — округлення вгору/вниз
• math.pi, math.e — константи

random — випадкові числа:
• random.randint(a, b) — випадкове ціле від a до b
• random.choice(список) — випадковий елемент
• random.shuffle(список) — перемішати
• random.random() — float від 0 до 1

datetime — дата та час:
• datetime.datetime.now() — поточна дата та час
• datetime.date.today() — поточна дата
• strftime('%d.%m.%Y') — форматування
• timedelta — різниця між датами
💡 Приклад коду
Вивід:

                        
📝 ЗАВДАННЯ (3)
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 208
" data-task-id="
Warning: Undefined array key "id" in /home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 209
" data-xp="10">
1.
Завдання: Генератор паролів
10 XP
Напишіть програму, яка генерує випадковий пароль заданої довжини з літер, цифр та спецсимволів.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 278
">
💡 Підказка: Створіть рядок усіх символів та використовуйте random.choice() у циклі.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 287
">
🔓 Розв'язок:
import random
import string

def generate_password(length=12):
    chars = string.ascii_letters + string.digits + '!@#$%&*'
    return ''.join(random.choice(chars) for _ in range(length))

for i in range(5):
    print(f'Пароль {i+1}: {generate_password(16)}')
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 296
">
Вивід:

                                
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 304
">

/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 208
" data-task-id="
Warning: Undefined array key "id" in /home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 209
" data-xp="20">
2.
Завдання: Калькулятор віку
20 XP
Програма запитує дату народження та виводить: вік у роках, днів до дня народження, день тижня народження.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 278
">
💡 Підказка: datetime.date(рік, місяць, день). День тижня: date.weekday().
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 287
">
🔓 Розв'язок:
import datetime

day = int(input('День: '))
month = int(input('Місяць: '))
year = int(input('Рік: '))

bd = datetime.date(year, month, day)
today = datetime.date.today()

age = today.year - bd.year
if (today.month, today.day) < (bd.month, bd.day):
    age -= 1
print(f'Вам {age} років')

next_bd = datetime.date(today.year, month, day)
if next_bd < today:
    next_bd = datetime.date(today.year + 1, month, day)
print(f'До ДН: {(next_bd - today).days} днів')

days_ua = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Нд']
print(f'Народилися у: {days_ua[bd.weekday()]}')
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 296
">
Вивід:

                                
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 304
">

/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 208
" data-task-id="
Warning: Undefined array key "id" in /home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 209
" data-xp="30">
3.
Завдання: Математична вікторина
30 XP
Гра: 5 випадкових прикладів (+, -, *) з числами від 1 до 20. Користувач вводить відповідь, програма рахує бали.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 278
">
💡 Підказка: random.randint() для чисел, random.choice() для операції.
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 287
">
🔓 Розв'язок:
import random

score = 0
for i in range(5):
    a = random.randint(1, 20)
    b = random.randint(1, 20)
    op = random.choice(['+', '-', '*'])
    correct = eval(f'{a} {op} {b}')
    try:
        ans = int(input(f'{a} {op} {b} = '))
        if ans == correct:
            print('Правильно!')
            score += 1
        else:
            print(f'Ні, правильно: {correct}')
    except ValueError:
        print(f'Помилка. Відповідь: {correct}')
print(f'Підсумок: {score}/5')
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 296
">
Вивід:

                                
/home/u994965865/domains/navychky.com.ua/public_html/course/lesson.php on line 304
">