7. (П3) Умовні оператори та введення даних з консолі¶
Мета роботи¶
Навчитися писати програми, які отримують дані від користувача через консоль, перевіряють їх і приймають рішення за допомогою умовних операторів if, elif, else. Окрема увага — перетворенню типів після input(), перевірці коректності введених даних та правилу відступів.
Персоналізація обов'язкова
Усі значення, які ви вводите під час тестових запусків, — ваші справжні дані: ім'я, група, дата народження, вік, кількість літер у прізвищі. Запуски з абстрактними 5, 10, 100 замість власних чисел не приймаються, як і роботи з даними іншого студента.
Ваші персональні дані¶
Перш ніж почати, випишіть ці значення — вони знадобляться в тестових запусках усіх завдань.
| Позначення | Звідки береться | Завдання |
|---|---|---|
name |
ваше повне ім'я латиницею | 1, 6 |
group |
ваша група | 6 |
age |
ваш повний вік | 1 |
d, m, y |
день, місяць і рік вашого народження | 2, 5 |
a |
день вашого народження (1–31) | 3, 7 |
b |
місяць вашого народження (1–12) | 3, 7 |
c |
кількість літер у вашому прізвищі латиницею | 3, 7 |
score |
бал, який ви очікуєте отримати за цю роботу | 4 |
missed |
скільки занять ви пропустили цього семестру | 4 |
graph LR
I["input()<br/>завжди рядок"] --> C["Перетворення<br/>int() / float()"]
C --> V["Перевірка<br/>if / elif / else"]
V --> O["Вивід результату<br/>f-рядок"]
style I fill:#339af0,stroke:#333,color:#fff
style C fill:#ffd43b,stroke:#333,color:#000
style V fill:#ff922b,stroke:#333,color:#000
style O fill:#51cf66,stroke:#333,color:#000
Вимоги до оформлення коду
- Відступ у блоках — рівно 4 пробіли, табуляції не використовувати.
- Імена змінних — осмислені, латиницею, у стилі
snake_case. - Кирилиця допускається лише в коментарях. Увесь текст у лапках — латиницею.
- Кожне запрошення до введення має пояснювати, що саме ввести й у якому форматі:
"Enter your age (integer): ". - Для виведення використовуйте f-рядки.
- Перший рядок виводу кожної програми — ваше ім'я та група, наприклад
print("Ivan Petrenko, PZ-11"). Саме за ним на знімку екрана видно, що роботу виконали ви.
Що варто пам'ятати про input()¶
| Пастка | Наслідок | Як обійти |
|---|---|---|
input() повертає рядок |
"5" + "3" дасть "53", а не 8 |
int(input(...)) або float(input(...)) |
| Порівняння рядка з числом | TypeError: '>' not supported between 'str' and 'int' |
Перетворити тип до порівняння |
| Зайві пробіли при введенні | " yes" != "yes" |
input(...).strip() |
| Різний регістр | "Yes" != "yes" |
input(...).strip().lower() |
int("3.5") |
ValueError |
Читати як float(), за потреби int(float(...)) |
| Порожній ввід | int("") → ValueError |
Перевірити if not text: до перетворення |
Хід роботи¶
Завдання 1. Знайомство з користувачем¶
Файл task1.py.
- Програма запитує ім'я користувача, потім його вік (ціле число).
- Якщо ім'я введено порожнім (користувач просто натиснув
Enter), програма виводить повідомлення про це й далі використовує підписAnonymous. Перевірку робіть через істинність рядка, а не через порівняння з"". -
За віком програма визначає й виводить одну з категорій:
Вік Категорія менше 0 некоректне значення 0–6 child7–17 schoolchild18–64 adult65 і більше senior -
Наприкінці програма вітається з користувачем на ім'я та повідомляє його категорію одним рядком.
Завдання 2. Аналіз введеного числа¶
Файл task2.py.
- Програма запитує в користувача одне ціле число.
- Виводить, чи число додатне, від'ємне чи дорівнює нулю.
- Для ненульового числа додатково виводить, парне воно чи непарне.
Приклад роботи програми:
Завдання 3. Калькулятор з вибором операції¶
Файл task3.py.
- Програма послідовно запитує: перше число, знак операції, друге число. Числа читайте як
float. - За допомогою
if/elif/elseпрограма виконує одну з операцій:+,-,*,/,//,%,**. - Якщо введено невідомий знак — програма повідомляє про це й не виконує обчислень.
- Перед діленням (
/,//,%) програма обов'язково перевіряє дільник на нуль і виводить зрозуміле повідомлення замість того, щоб аварійно завершитися. - Результат виводиться повним рядком: вираз, знак рівності, відповідь із чотирма знаками після коми.
Завдання 4. Оцінка за 100-бальною шкалою¶
Файл task4.py.
- Програма запитує бал (ціле число) і кількість пропущених занять.
- Спочатку перевіряє коректність балу: якщо він менший за
0або більший за100, програма повідомляє про помилку і більше нічого не рахує. -
Для коректного балу визначає буквену оцінку:
Бал Оцінка ECTS 90–100 Aвідмінно 82–89 Bдобре 74–81 Cдобре 64–73 Dзадовільно 60–63 Eзадовільно 0–59 Fнезадовільно -
Додатково: якщо пропущено більше 30% занять (усього занять — 16), програма виводить попередження про недопуск, незалежно від балу.
- Наприкінці одним рядком виводить: бал, буквену оцінку і чи складено залік (
passed/failed).
Завдання 5. Перевірка коректності дати¶
Файл task5.py.
- Програма запитує три числа: день, місяць, рік. Перший тестовий запуск — ваша власна дата народження
d,m,y. -
Програма перевіряє коректність дати за такими правилами:
- місяць має бути в межах
1–12; - рік має бути додатним;
- кількість днів залежить від місяця: у січні, березні, травні, липні, серпні, жовтні та грудні — 31; у квітні, червні, вересні й листопаді — 30; у лютому — 28 або 29;
- лютий має 29 днів, якщо рік високосний: ділиться на 4, але не на 100, або ділиться на 400.
- місяць має бути в межах
-
Програма виводить
Date is validабоDate is invalidіз поясненням, що саме не так.
Exmaple:
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub