2016-03-14 7 views
1

Я только начинаю этот код, но когда я пытаюсь запустить его, я продолжаю получать недопустимый синтаксис над основным.Конвертировать миллисекунды в часы, минуты и секунды python

def convertMillis(millis): 
    seconds=(milli/1000)%60 
    minutes=(milli/(1000*60))%60 
    hours=(milli/(1000*60*60))%24 

    return 

def main(): 
    milli=print(input("Enter time in milliseconds ")) 

    print(hours,":",minutes,":",seconds 

main() 

Почему это так? И я нахожусь на правильном пути, чтобы получить его, чтобы положить его в нужном формате.

Я бы хотел (а) показать им. convertmillies (5500) возвращает 0: 0: 5

пожалуйста, помогите

обновление

def convertMillis(millis): 
    millis = int(millis) 
    seconds=(millis/1000)%60 
    seconds = int(seconds) 
    minutes=(millis/(1000*60))%60 
    minutes = int(minutes) 
    hours=(millis/(1000*60*60))%24 

    return (hours, minutes, seconds) 

def main(): 
    millis=input("Enter time in milliseconds ") 

    print ("%d:%d:%d" % (hours, minutes, seconds)) 

main() 

я должен дать одну две функции и один должен содержать convertMillis (Миллис): , но он говорит, что часов не определено, почему это так?

+0

Вы ушли из ')' в конце вашего 'print' вызова. – zondo

+0

Возможный дубликат [Как преобразовать миллисекунды в читаемую человеком форму?] (Http://stackoverflow.com/questions/175554/how-to-convert-milliseconds-into-human-readable-form) – Andy

+0

Вы можете упростить 'convertMillis() 'с помощью' minutes, seconds = divmod (milli, 100) ',' hours, minutes = divmod (minutes, 60) '. Кроме того, вы ничего не возвращаете. Вы должны сказать «return (часы, минуты, секунды)». Кроме того, в 'main()' вы определяете 'milli' как возврат' print() '. 'print()' всегда возвращает None. Вы можете просто взять 'print (' от начала и ')' от конца. Кроме того, для его печати используйте 'print (": ". Join (convertMillis (int (milli)))) – zondo

ответ

7

Если Вы хотите одну единственной функции:

def main(): 
    millis=input("Enter time in milliseconds ") 
    millis = int(millis) 
    seconds=(millis/1000)%60 
    seconds = int(seconds) 
    minutes=(millis/(1000*60))%60 
    minutes = int(minutes) 
    hours=(millis/(1000*60*60))%24 

    print ("%d:%d:%d" % (hours, minutes, seconds)) 

main() 
1

Попробуйте это:

def convertMillis(millis): 
    seconds=(millis/1000)%60 
    minutes=(millis/(1000*60))%60 
    hours=(millis/(1000*60*60))%24 
    return seconds, minutes, hours 

def main(): 
    millis=input("Enter time in milliseconds ") 
    con_sec, con_min, con_hour = convertMillis(int(millis)) 
    print("{0}:{1}:{2}".format(con_hour, con_min, con_sec)) 

main() 

проблем кажется:

  1. Вам не хватают понимания локальных и глобальных переменных. Просто потому, что переменная в вашем convertMillis не означает, что main получит ее. Вы должны явно вернуть их.
  2. Вы неправильно понял синтаксис print, input и return
+0

Почему бы не воспользоваться' divmod() '? – zondo

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