#python #pydev
#python #пыдев
Вопрос:
Итак, вот код, я скопировал его символ за символом из codecademy и попытался изменить его, но получил ту же ошибку. Я знаю, что codecademy использует python 2, но различия не будут настолько велики, что базовый «%s» не будет работать!
from datetime import datetime
now = datetime.now()
print ("%s %s %s") % (now.year, now.month, now.day)
и это мое сообщение об ошибке:
Traceback (most recent call last):
File "C:UsersSunilDesktopBeginning ProgrammingJavaworkspaceHelainsrcpackag__init__.py", line 5, in <module>
print ("%s %s %s") % (now.year, now.month, now.day)
TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
Какую ошибку я совершаю?
Ответ №1:
В Python 3 print
это функция, поэтому этот код вызывает print("%s %s %s")
, а затем применяется %
к результату этого вызова, который равен None.
Попробуйте print ("%s %s %s" % (now.year, now.month, now.day))
Комментарии:
1. Ах, спасибо за ваше краткое, но понятное объяснение! Спасибо, что ответили на этот вопрос и некоторые из моих будущих вопросов, которые я неизбежно получу!
Ответ №2:
Вы также можете использовать форматирование строк.
from datetime import datetime
now = datetime.now()
print ("{} {} {}".format(now.year, now.month, now.day))