我有这个程序:
def test(zeit_1, zeit_2):
zeit_1_liste = [int(x) for x in str(zeit_1)]
zeit_2_liste = [int(x) for x in str(zeit_2)]
print(zeit_1_liste, zeit_2_liste)
print(test(160606,240000))
该程序将int转换为数字列表。虽然输入以>=1
开头时非常有效,但输入数字以0开头(例如060606
和092618
),它会给我一个无效的令牌错误。
我该如何解决这个问题?
答案 0 :(得分:2)
在python3中,整数文字不能包含0
后跟其他数字:
>>> a = 0123
a = 0123
^
SyntaxError: invalid token
如果你真的想要八进制文字,你需要用0o
启动它们。但似乎你想要小数,在这种情况下你需要删除前导0
。
注意:在python2中,以0
开头的整数文字后跟其他数字是 octal 或base-8。这意味着它们只能由[0, 8]
范围内的数字组成。 060606
符合此标准:
>>> [int(x) for x in str(060606)]
[2, 4, 9, 6, 6]
但092618
没有。
>>> [int(x) for x in str(092618)]
[int(x) for x in str(092618)]
SyntaxError: invalid token
答案 1 :(得分:2)
你需要把它放在字符串中:
print(test("160606", "240000"))