zix*_*ool 34 python syntax python-3.x
我有问题:当我试图把一个值变量year, month, day.
的问题显示出来,当我试图把year, month, day.一个year, month, day.或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
Run Code Online (Sandbox Code Playgroud)
为何如此讨厌?
怎么解决?
python中的标记是什么意思?
Tuo*_*nen 56
在Python 3中,数字不允许前导零.例如:
05
0123
Run Code Online (Sandbox Code Playgroud)
等等是不允许的,但应该写成5而123不是.
但是,在Python 2中,前导零表示该数字是八进制数(基数为8),因此04或03将分别表示4和3八进制数,但08由于它不是有效的八进制数,因此无效.
在Python 3中,octals的语法更改为:
0o10
0o4
Run Code Online (Sandbox Code Playgroud)
(以及使用0b或0x前缀允许其他基础,如二进制和十六进制.)
至于你的另一个问题,Python中的一个标记是Python解释器将你的代码分成块的方式,这样它就能理解它(见这里).这里,当标记生成器试图分割你的代码时,它不会期望在那里看到零,因此抛出错误.
我建议(与其他答案类似)你删除前导零((2016,4,3))或使用字符串(("2016","04","03"))表示这些.
che*_*ner 14
04是Python 2.x中的有效整数文字.它被解释为base-8(八进制)数.09也是一个无效的令牌,因为9它不是一个有效的八进制数字.
在Python 3中,八进制文字的形式发生了变化.单独的前导零不再有效; 你需要明确指定基数.例如,0o12等于10.
在你的情况下,你可能只想删除前导0 : a = (2016, 4, 3). 必要时,可以将前导零添加到元组的字符串表示形式,而不是尝试显式存储它们.