Минутный конвертер и возврат нескольких значений в 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 присутствует в списке

Другие вопросы по тегам