@Levchenko_An
Работаю в call-центре Билайн Бизнес

Почему input(int()) автоматически выставляет 0?

Я ученик и мне нужно задать простой и слегка глупый вопрос, на который не могу найти ответ. Решаю задачки в сети, при написании кода мне нужно сделать ввод числа через input, подставляю туда int, чтобы можно было вводить только число. Когда запускаю debug код:
print('Сколько школьников?')
s = input(int())
print('Сколько яблок?')
a = input(int())
eat = a//s
basket = a%s
print('Каждый школьник получит', eat, 'яблок')
print('В корзине осталось', basket, 'яблок')

Автоматически подставляется 0, то есть могу ввести только 01, что, естественно, не работает.
5c52dabf31b16025794282.png
Как этого избежать, без
i = int(i)
  • Вопрос задан
  • 417 просмотров
Решения вопроса 1
Kademn
@Kademn
Злой
input всегда возвращает строку. Параметр, который принимает input, это то, что будет напечатано для пользователя, как приглашение к вводу, после которого он сможет вводить данные. Вы передаёте туда int(), который возвращает 0, именно это и печатает input, как приглашение к вводу данных.
Вместо того, чтобы печатать фразу "Сколько школьников?" print('Сколько школьников?') лучше передать эту фразу в input, чтобы он напечатал её, как приглашение к вводу:

s = input('Сколько школьников? ')

В s будет строка, теперь чтобы преобразовать это в число и совершать математические операции, необходимо преобразовать s в integer:
s = input('Сколько школьников? ')
s = int(s)


Или можно записать это одной строкой, вложив одну функцию в другую:
s = int(input('Сколько школьников? '))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
netpastor
@netpastor
Python developer
s = input(int())
0>? 1
s
Out[3]: '1'
s = int(input())
1
s
Out[5]: 1
Ответ написан
Комментировать
Не так разве?
print('Сколько школьников?')
s = int(input())
print('Сколько яблок?')
a = int(input())
eat = a//s
basket = a%s
print('Каждый школьник получит', eat, 'яблок')
print('В корзине осталось', basket, 'яблок')

Перепутали местами int() и input()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы