2014-09-08 11 views
1

Я пытаюсь создать программу, которая позволит мне ввести значение за считанные минуты, и программа выведет эти минуты как количество дней, часов и минут между ними. Например, если я ввожу 10000 минут, я должен получить результат: «10000 минут - 6 дней, 22 часа и 40 минут»). Это, как много у меня сейчас:Нулевое значение

min = int(input("Enter a whole number of minutes: ")) 
days = min/1440 
remainday = min%1440 
print (days) 

Я только имея одну проблему отступлений от нее не завершена, если пользователь вводит количество минут в 1440 году, то я получить десятичную ответ на количество дней (что ожидается), но если количество минут недостаточно, чтобы сделать день, то я хочу, чтобы он сказал «0 дней» не «.153 дня». Как бы я обнулить значение в течение нескольких дней в таком случае?

+2

'min' является встроенной функцией в Python. Используйте другое имя переменной, например 'mins'. 'divmod' - это встроенная функция, в которой вы хотите получить целые дивиденды и остатки. –

ответ

4

Вы используете Python 3, так что оператор / является true division, not integer division.

Вы можете использовать пол подразделение, которое похоже на Python 2 в целочисленное деление:

days = min//1440 

Или использовать divmod, чтобы получить как с помощью одной команды:

days, remaindays = divmod(min,1440) 
1

Вы можете использовать пол деление (с использованием двойного // вместо одного / при делении), которая округляет до ближайшего целого числа:

min = int(input("Enter a whole number of minutes: ")) 
# Example input: 1000 
days = min // 1440 
remainday = min%1440 
print (days) 
# Output: 
# 0 
0

Вы по существу хотите закруглить down результат деления (частного) до ближайшего целого. Это можно сделать разными способами:

days = int(min/1440) 

Или

days = min//1440 # // is the integer division in Python 3, while/is float division` 

Или

days = math.floor(min/1440) # after importing "math" module, using "import math" 
Смежные вопросы