当我试图给变量赋值时,我遇到了一个问题。当我尝试按以下顺序将日期作为元组或列表时,问题就出现了:year, month, day.
>>> a = (2016,04,03) # I try to put the date into variable 'a' as a tuple.
SyntaxError: invalid token
>>> a = [2016,04,03] # I try to put the date into variable 'a' as a list.
SyntaxError: invalid token
为什么会这样?
我该怎么修?
token在Python中是什么意思?
在Python3中,数字不允许前导零。E、 克:
不允许使用Etc,但应改为
5
和123
。然而,在Python 2中,前导零表示数字是一个八进制数(基数为8),因此
04
或03
分别表示4
和3
八进制数,但08
无效,因为它不是有效的八进制数。在Python 3中,八进制的语法更改为:
(以及允许使用
0b
或0x
前缀的其他基数,如二进制和十六进制)至于您的另一个问题,Python中的一个标记是Python解释器将代码分成块的方式,以便它能够理解它(请参见here)。在这里,当标记器试图分割代码时,它不希望在那里看到零,因此抛出一个错误。
我建议(类似于其他答案)去掉前导零(
(2016,4,3)
)或使用字符串(("2016","04","03")
)表示它们。问题是4之前的0。 如果您想存储这种信息,请尝试使用字符串。
在Python 2.x 04中被解释为八进制数。 在Python中,八进制数字是以0o4的形式写的,如这里所写的:http://docs.python.org/3.0/whatsnew/3.0.html#integers
04
是Python 2.x中的有效整数文本。它被解释为一个基数8(八进制)数字。09
也是无效的标记,因为9
不是有效的八进制数字。在Python 3中,八进制文字的形式发生了变化。仅前导零不再有效;您需要显式指定基。例如,
0o12
等于10
。在您的例子中,您可能只需要删除前导0:
a = (2016, 4, 3)
。必要时,可以将前导零添加到元组的字符串表示形式中,而不是尝试显式存储它们。相关问题 更多 >
编程相关推荐