我正在尝试创建一个简单的程序,以mm / dd / yy形式打印日月和年份,但我一直收到追溯错误:
%s/%s/%s
Traceback (most recent call last):
File "C:/Python34/timenow.py", line 4, in <module>
print('%s/%s/%s')%(now.month, now.day, now.year)
TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
我正在使用python 3.4.0
这是我的代码:
from datetime import datetime
now = datetime.now()
print('%s/%s/%s')%(now.month, now.day, now.year)
答案 0 :(得分:5)
您需要在格式字符串后面放置%
运算符:
print('%s/%s/%s' % (now.month, now.day, now.year))
您当前的代码让Python尝试在None
返回的print
对象上使用它:
>>> type(print('hi'))
hi
<class 'NoneType'>
>>>
另外,我想提两件事。首先,字符串格式化的现代方法是使用str.format
而不是%
运算符:
print('{}/{}/{}'.format(now.month, now.day, now.year))
第二个是这里不严格需要字符串格式化,因为我们有print
函数的sep
parameter,它用于将给定print
的参数与某个字符串分开:< / p>
>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.month, now.day, now.year, sep='/')
5/20/2014
>>>