Тема
3
Зчитування
даних
Теоретична
частина
На попередньому уроці ми надавали
значення змінним у самій програмі. Але на практиці частіше потрібно брати дані
ті, що вводить користувач, тобто потрібно навчитися ці дані зчитувати. Для
зчитування даних, уведених з клавіатури, на мові PYTHON існує функція input(). Результат
зчитування потрібно надати деякій змінній. Наприклад:
a=input()
Змінна а набуде значення рядка,
введеного з клавіатури. Зверніть увагу, саме рядка, тобто змінна а є
рядковою величиною. Якщо нам потрібно зчитати саме число, то потрібно за
допомогою функції int() перевести цей
рядок у ціле число. При цьому рядок не повинен містити інших символів крім цифр
та знаків «+» і «-». Тобто програма буде містити два рядки:
a=input()
a=int(a)
Зверніть увагу, спочатку змінна а набуває
значення рядкового типу, а потім набуває цілочисленого типу, тобто тип змінної
може змінюватися під час виконання програми. В цьому полягає суттєва
відмінність мови PYTHON від інших
відомих мов, зокрема PASCAL чи C++. Саме тому в цій мові немає опису змінних. Але ці
два рядки програми можна обʼєднати і записати так:
a=int(input())
Тобто результат зчитування переводиться
до цілочисленого типу і записується у змінну а. Якщо спочатку
потрібно вивести запитання, а відповідь на нього записати у змінну, то зміст
питання записується у дужках функції input(). Наприклад,
a=int(input("Введіть значення сторони квадрата"))
Якщо потрібно зчитати дві змінні, що записані у різних рядках, то два рази записуємо таку комбіновану функцію, але для двох різних змінних:
a=int(input("Введіть значення сторони квадрата"))
Якщо потрібно зчитати дві змінні, що записані у різних рядках, то два рази записуємо таку комбіновану функцію, але для двох різних змінних:
a=int(input())
b=int(input())
Якщо потрібно зчитати дійсне число, то
використовуємо замість функції int() функцію float(). Наприклад:
a=float(input())
Розглянемо кілька прикладів.
Приклад 1.
Дано натуральне число. Вивести останню
цифру цього числа.
Вхід
Вихід
2341
1
В цьому і наступних прикладах показано
приклад вхідних і вихідних даних, тобто для введеного числа 2341 відповіддю
буде 1. Приклад потрібен для кращого розуміння умови задачі і формату вхідних
та вихідних даних.
Для того, щоб знайти останню цифру числа
(число одиниць), достатньо знайти остачу від ділення даного числа на 10.
Приклад програми:
a=int(input())
print(a%10)
Приклад 2.
Дано натуральне трицифрове число.
Вивести суму цифр цього числа.
Вхід
Вихід
538
16
Останню цифру ми знаходити вже вміємо
(див. приклад 1). Для знаходження числа сотень потрібно знайти цілу частку від
ділення даного числа на 100. Для знаходження числа десятків можна знайти
спочатку кількість десятків цього числа (двоцифрове число), а потім знайти його
останню цифру. Після цього виводимо суму цих чисел. Приклад програми:
a=int(input())
# зчитування числа
x=a//100
#число сотень
y=a//10%10 # число десятків
z=a%10
# число одиниць
s=x+y+z
# сума цифр
print(s)
# виведення
результату
Приклад 3.
Дано кількість секунд, що пройшли
від початку доби. Вивести покази електронного годинника у форматі h:mm:ss, де h – кількість
годин (від 0 до 23), mm – двозначне
число хвилин (від 00 до 59), ss – двозначне
число секунд (від 00 до 59).
Вхід
Вихід
122876
10:07:56
Спочатку знайдемо число годин (частка
від ділення на 3600), потім число хвилин (частка від ділення на 60 від остачі
від ділення на 3600), потім число секунд (остача від ділення на 60). Врахуємо,
що кількість годин не може бути більше 23, тому знайдемо остачу від ділення на
24. При виведенні числа хвилин та секунд, будемо виводити спочатку кількість
десятків, а потім кількість одиниць. У функції print() поставимо розділювач sep=’’. Приклад програми:
a=int(input())
h=a//3600%24
m=a%3600//60
s=a%60
print(h, ‘:’,
m//10, m%10, ‘:’, s//10, s%10, sep= ‘’)
Для
допитливих
Якщо ж дві змінні записані у одному
рядку через пробіл, то процес зчитування є складнішим. Приведемо приклад:
a, b = map(int, input().split())
Розберемося спершу із записом input().split(). Для функції input() є метод split(), який повертає список рядків, розрізаючи зчитуваний рядок по пропусках (пробілах).
Складно? Звичайно, складно, але тільки на початку вивчення PYTHON! Для тих, хто тільки починає вивчати програмування і
не знайомий з іншими мовами програмування, можна просто запам’ятати такий
спосіб зчитування, а розібратися можна буде пізніше. А для тих, хто знайомий з
поняттям масивів та рядків, спробуємо пояснити. По-перше, поняття методу: це
те, що можна робити з обʼєктом. Обʼєкт – це зчитуваний рядок, а процес розрізання
– це метод. Метод дописується до обʼєкта через крапку. По-друге, за
замовчуванням метод split() розрізає даний
рядок по пропусках на інші рядки. Якщо в дужках ми вкажемо інший символ, то
розрізання відбудеться по ньому. Наприклад:
Дано рядок 12:04:23
Після команди
a, b, c = map(int, input().split(“:”))
змінна а набуде
значення 12, змінна b набуде значення 4, а змінна с набуде
значення 23.
По-третє, функція map(f,s) має два параметри: f – функція, яка виконується, s – список обʼєктів, для яких ця функція виконується.
Отже, спочатку зчитується рядок, який
розбивається на інші рядки по пропусках. Список рядків, в PASCAL – це масив рядків (точніше, множина чи група лядків), за допомогою функції int() переводиться у список чисел (групу чисел), які записуються у
змінні a та b. Якщо ще не все зрозуміло,
то при вивченні списків (масивів), все стане на свої місця.
Приклад 4.
В одному рядку через пробіл дані два
дійсних числа – довжини сторін прямокутника. Вивести два числа через пробіл –
площу і периметр прямокутника
Вхід
Вихід
2.7 4 10.8 13.4
Приклад програми:
a, b=map(float,
input().split())
s=a*b
p=2*(a+b)
print(s, p)
Приклад 5.
В одному рядку дано ім’я. Вивести привітання для цього імені (див. приклад)
Вхід
Вихід
Іван Доброго дня, Іван
Приклад програми:
a=input()
print(‘Доброго дня,’,a)
Практична
частина
Перевірити задачі можна онлайн на сайті Хмельницького обласного інституту післядипломної педагогічної освіти на сторінці олімпіад за адресою http://dn.hoippo.km.ua:8889/ у розділі
«Задачі»
Завдання 3.1. Дано двоцифрове число. Знайдіть
добуток його цифр.
Вхід
Вихід
23 6
Завдання 3.2. У двох рядках дано по одному
натуральному числу. Знайдіть остачу від ділення першого числа на друге
Вхід
Вихід
39 4
5
Завдання 3.3. У двох рядках дано по одному
натуральному числу. Знайдіть цілу частину від
ділення другого числа на перше.
Вхід
Вихід
5 6
34
Завдання
3.4. Дано одне ціле число – сторона квадрата. Вивести на екран одне число – площу
квадрата.
Вхід
Вихід
4
16
Завдання
3.5. У двох рядках дано по одному натуральному числу – сторони
прямокутника. Вивести на екран в одному рядку через пропуск спочатку периметр,
а потім площу цього прямокутника.
Вхід
Вихід
2 10 6
3
Завдання
3.6. В кошику лежить n горіхів, а навколо нього стоять k дітей. По черзі
діти беруть з кошика горіхи доти, поки у всіх буде однакова кількість. Скільки горіхів
отримає кожна дитина?
У
двох рядках дано два натуральних числа – n і k. Вивести одне число – відповідь на задачу.
Вхід
Вихід
17 3
5
Завдання
3.7. В кошику лежить n горіхів, а навколо нього стоять k дітей. По черзі
діти беруть з кошика горіхи доти, поки у всіх буде однакова кількість. Скільки горіхів
залишиться у кошику?
У
двох рядках дано два цілих числа – n і k. Вивести одне число – відповідь на задачу.
Вхід
Вихід
17
2
5
Завдання
3.8*.
Хлопчик прийшов у магазин, маючи а
грн. і b
коп. За покупку він заплатив с грн. і
d коп. Скільки
грошей залишилося у хлопчика, якщо початкова сума грошей дозволяла здійснити
покупку?
У
одному рядку через пропуск дано чотири цілих числа a,b,c,d. У одному рядку
через пропуск вивести кількість гривень та копійок, які в нього залишилося.
Вхід
Вихід
21 78 12 60 9
18
Завдання 3.9. У першому рядку дано ім’я людини, а в другому – ціле число, що вказує на вік людини.
Потрібно вивести повідомлення про вік цієї людини (див. приклад)
Вхід
Вихід
Vanya Vanya has 13 years
Немає коментарів:
Дописати коментар