Хорошо, давайте сделаем это шаг за шагом, потому что, как вы сказали, есть Все виды сообщений об ошибках, от синтаксиса до ...
from datetime import time
atw = input ("When I came to work in format of HH:MM \n")
Эти первые две строки работают без проблем, это нормально.
h,m = map (int, time.split(":"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.time' has no attribute 'split'
О, ошибка, давайте прочитаем, что говорится в сообщении об ошибке: Тип объекта «datetime.time» не имеет атрибута «split» . Ну, это правильно, потому что мы не хотим разделять time
, но время, которое мы дали для ввода и которое имеет имя atw
, поэтому давайте использовать это:
h,m = map (int, atw.split(":"))
print (("I came to work @", atw ,"%H%M"))
Нет ошибок, но странный вывод:
(«Я пришел на работу», «08:17», «% H% M»)
Вы, вероятно, не хотели выводить кортеж (круглые скобки) и хотели отформатировать этот вывод, как я вижу из строки форматирования "%H%M"
. К счастью, python (> = 3.6) имеет хорошее решение для этого, которое называется f-strings :
print (f"I came to work @{atw}")
Хммм, подождите, как насчет форматирования, которое просто выводит то, что мы внесли ... Так что используйте h
и m
:
print (f"I came to work @{h:02d}:{m:02d}")
Выполните поиск в Google, что означает :02d
, и какие еще есть варианты;)
Следующая строка:
gh = atw + 0800
File "<stdin>", line 1
gh = atw + 0800
^
SyntaxError: invalid token
Хммм, вы хотите добавить 8 часов, чтобы получить конечное время, но все, что вы получаете, это синтаксическая ошибка ... Это потому, что 0800
не является допустимой конструкцией Python, вы, вероятно, имеете только 8? Давайте попробуем это ...
gh = atw + 8
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
Еще одна ошибка, но почему? Вы используете строку atw, хотя вы уже разбили ее на два целых числа h
и m
, где h обозначает часы:
gh = h + 8
print ("You can go home @ ", gh)
Ах, черт побери, эта печать снова. Посмотрите выше и используйте f-строки:
print (f"You can go home @{gh}:{m}")
А теперь попробуйте посмотреть, получите ли вы решение, используя strptime
, как предложено в комментариях @ mkrieger1.
И pleeeeease сделать урок Python:)