如何在def python中传递str号?

时间:2015-11-01 12:20:59

标签: python

我有这个程序:

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开头(例如060606092618),它会给我一个无效的令牌错误。

我该如何解决这个问题?

2 个答案:

答案 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"))