所以当我做这样的事情时:
x=str(19072000)
day=x[:2]
month=x[2:4]
year=x[4:]
final=day+"/"+month+"/"+year
print(final)
I get:19/07/2000
>>>x=str(01011930)
File"(Stdin)",line 1
x=str(01011930)
^
SyntaxError:invalid token
但当我尝试做同样的事情,但使用01011930时,我得到了SyntaxError:无效令牌,有什么想法吗?
问题是整数常量中的前导0
。
在Python 2中,以0
开头的整数被视为八进制常数,这不允许使用数字8
或9
(即使没有它们,得到的数字也会与您想要的大不相同(。
在Python3中,除了0
本身之外,根本不允许使用它。(在Python3中,八进制常量以0o
开头,类似于十六进制常量如何以0x
开头。(
要执行您想要的操作,只需移除前导零即可。然后你可以使用归零键盘
x = "%08d" % 1011930
这将把x
设置为字符串'01011930'
。然后你的索引就可以工作了。
等效地,您可以使用:
x = "{:08d}".format(1011930)