Минутный конвертер и возврат нескольких значений в Python
Так что я только начал изучать python и мне нужна помощь с моим кодом. Вот мой код,
x = 4014
minute = x / 60
whole_minute = round(minute, 0)
if whole_minute * 60 <= x:
sec_1 = x - (whole_minute * 60)
print("%.0f" % whole_minute, "minutes and", "%.0f" % sec_1, "seconds")
else:
better_whole_minute = whole_minute - 1
sec_2 = x - (better_whole_minute * 60)
print("%.0f" % better_whole_minute, "minutes and", "%.0f" % sec_2, "seconds")
# it prints '66 minutes and 54 seconds'
Я должен был заставить его возвращаться более одного раза, но просто не знал, как написать это таким образом. Например, предполагалось возвратить преобразования для 4014, 4074, 4112 и т. Д. Мне сказали, что функции, классы, кортежи и списки - это путь, но я просто не знаю, с чего начать. Есть какие-нибудь советы?
2 ответа
Как уже указывалось, вы можете конвертировать свой код, просто используя for
цикл, перебирая входные значения, расположенные в list
, лайк:
time_list = [4014, 4074, 4112]
for x in time_list:
minute = x / 60
whole_minute = round(minute, 0)
if whole_minute * 60 <= x:
sec_1 = x - (whole_minute * 60)
print("%.0f" % whole_minute, "minutes and", "%.0f" % sec_1, "seconds")
else:
better_whole_minute = whole_minute - 1
sec_2 = x - (better_whole_minute * 60)
print("%.0f" % better_whole_minute, "minutes and", "%.0f" % sec_2, "seconds")
Кроме того, вы могли бы сделать function
который выполняет расчет / печать и использовать это:
def calculate_time(x):
minute = x / 60
whole_minute = round(minute, 0)
if whole_minute * 60 <= x:
sec_1 = x - (whole_minute * 60)
print("%.0f" % whole_minute, "minutes and", "%.0f" % sec_1, "seconds")
else:
better_whole_minute = whole_minute - 1
sec_2 = x - (better_whole_minute * 60)
print("%.0f" % better_whole_minute, "minutes and", "%.0f" % sec_2, "seconds")
time_list = [4014, 4074, 4112]
for x in time_list:
calculate_time(x)
Есть и другие вещи, которые можно улучшить: функцию можно сделать так, чтобы печать оставлялась на пути основного кода, а функция просто возвращала tuple
вычисленных значений:
def calculate_time(x):
minute = x / 60
whole_minute = round(minute, 0)
if whole_minute * 60 <= x:
sec_1 = x - (whole_minute * 60)
return (whole_minute, sec_1)
else:
better_whole_minute = whole_minute - 1
sec_2 = x - (better_whole_minute * 60)
return (better_whole_minute, sec_2)
time_list = [4014, 4074, 4112]
for x in time_list:
minutes, seconds = calculate_time(x)
print("%.0f" % minutes, "minutes and", "%.0f" % seconds, "seconds")
Вы должны повторить это, используя for
цикл как:
time_list = [4014, 4074, 4112] # list holding all values of `x`
for x in time_list:
# ... your code from after you initialize value of `x`
Это запустит ваш код для всех значений x
присутствует в списке