Мне Ай Твистер и Колу 0.5



Для этого поста я взял формулировки из вариантов ОГЭ по Информатике:
Первый
Второй

При решении последней задачи ОГЭ по информатике, нам всегда нужно получать какой то ввод. В задаче часто дается вот такая таблица:

Входные данныеВыходные данные
3123
20
52
67


Входные данные - это то, что вводят в терминал. Обычно ввод делится на два вида:



Первый: в начале вводится число значений, которое введётся. Например формулировка такая:

Программа получает на вход число проехавших автомобилей N (1 < N < 30), затем указываются их скорости.


Программа получит сначала число автомобилей, например 3, потом будет ровно три ввода скоростей, то есть:

ps1
>> 3    <- число машин
>> 20   <- первая скорость
>> 52   <- вторая скорость
>> 67   <- третья скорость


После третей скорости ввод заканчивается.

Второй: всё вводится сразу, но конец ввода определяется чем-то вроде "0"

Вот так выглядит формулировка:

Программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность).


Буквально написано количество введенных чисел неизвестно - это значит, что их может быть сколько угодно. ...последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность) - то, о чём я говорил: конец - это ввод "0"

Разбор:

ps1
>> 20   <- первое число
>> 52   <- второе число
...
>> 67   <- N число
>> 0    <- Конец ввода


Выходные данные - это то, что надо вывести через print()



Тут может быть что угодно, но вот что попадается чаще всего:

Количество четных/нечетных чисел
Среднее число из всех
Самое большое/маленькое число
Что вроде "YES"/"NO"


Что же насчёт Ай Твистера?



Знакомимся с новой встроенной функцией пайтона: input

Что она делает? Эта функция просто ждёт какой-либо ввод от пользователя.


Синтаксис такой:

python
булат_пошел_в_школу = input()

print("Результат:",булат_пошел_в_школу)


Мы объявляем переменную булат_пошел_в_школу и присваиваем ей значение ввода пользователя. Можно вводить что угодно. Вот как это будет выглядеть:

txt
>> ДА              <- мы вводим что угодно
>> Результат: ДА   <- сработал print


Или пусть будет так:

txt
>> Нет, он офигел               <- мы вводим что угодно
<< Результат: Нет, он офигел    <- сработал print


Прошу заметить, что я использовал в print: ...тат:",булат... - я вывожу строку, и чтобы объединить её с переменной я ставлю запятую и пишу название переменной.


input в ОГЭ



Для всех задач нам он нужен. В ОГЭ я заметил, что почти всегда используются числа, поэтому нам нужен int (если помните, я давал таблицу в первом уроке):

python
возраст = int(input())

print("Возраст пользователя:",возраст)


Зачем нужен int в начале, если можно без него? int нужен чтобы ввод пользователя точно был числом. Если при int(input()) ввести НЕ число, то выдаст ошибку. В общем, просто пишем конструкцию int(input()), улыбаемся и машем


Тесты программы выше (вывод):

txt
>> 18
<< Возраст пользователя: 18


А если не число?

txt
>> булат    <- ЭТО СТРОКА, А НЕ ЧИСЛО!
<< Traceback (most recent call last):
    File "C:\oge.py", line 1, in <module>
    возраст = int(input())
              ~~~^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'булат'



Как мы видим, первая программа обрабатывает числа нормально: Возраст пользователя: 18, а вторая - падает с ошибкой. Я вам показал это, чтобы вы поняли, зачем это делается, но главное запомнить: в ОГЭ пишем конструкцию int(input()), улыбаемся и машем

Практика



Давайте напишем программу для определения возраста:

python
print("Введите свой возраст")
возраст_пользователя = int(input())

if возраст_пользователя >= 18:
    print("Вы взрослый")
elif 18 > возраст_пользователя >= 12:
    print("Ты подросток")
else: 
    print("Держи киндер 🐛")


Вывод:

txt
Тест #1
<< Введите свой возраст
>> 18
<< Вы взрослый


txt
Тест #2
<< Введите свой возраст
>> 12
<< Ты подросток


txt
Тест #3
<< Введите свой возраст
>> 6
<< Держи киндер 🐛


Домашнее задание



Написать программу, которая просит ввести имя пользователя, пол и возраст. Вывести в таком формате:
txt
<< Пользователь: Булат, 16
<< Пол: мужской
<< Статус: подросток


Подсказка: для строк используем просто input(), для возраста int(input())