2016-11-29 3 views
0

Итак, я только начал изучать python и нуждался в некоторой помощи с моим кодом. Вот мой код,Minute Converter & Returning Несколько значений в 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 и т. Д. Мне сказали, что функции, классы, кортежи и списки - это путь, но просто не знаю с чего начать. Есть ли советы?

+0

списка использования и для петли 'для й в [4014, 4074, 4112]:'. Вы также можете создать функцию для вызова функции func (4014) '' func (4074) '' func (4112) ' – furas

ответ

0

Как уже указывалось, вы можете преобразовать ваш код просто используя 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") 
0

Вы должны повторять его с помощью 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 в списке

Смежные вопросы