Eva*_*ark 13 python dictionary python-2.x
为什么我不能将008或009作为Python dict的键,但是001-007很好?例:
some_dict = {
001: "spam",
002: "eggs",
003: "foo",
004: "bar",
008: "anything", # Throws a SyntaxError
009: "nothing" # Throws a SyntaxError
}
Run Code Online (Sandbox Code Playgroud)
更新:问题解决了.我不知道启动一个零的文字使它成为八进制.这看起来很奇怪.为什么零?
Jac*_*cob 28
在python和其他一些语言中,如果从0开始一个数字,则该数字被解释为八进制(基数为8),其中只有0-7是有效数字.您必须将代码更改为:
some_dict = {
1: "spam",
2: "eggs",
3: "foo",
4: "bar",
8: "anything",
9: "nothing" }
Run Code Online (Sandbox Code Playgroud)
或者如果前导零非常重要,请使用字符串作为键.
Jay*_*son 10
Python将008和009视为八进制数,因此......无效.
你最多只能到007,然后下一个数字是010(8)然后是011(9).在Python解释器中尝试它,你会明白我的意思.
在Python(以及许多其他语言)中,以前导"0"开头的数字表示八进制数(基数为8).使用此前导零表示法称为八进制文字.八进制数字变为0,1,2,3,4,5,6,7,10,11等.因此08(八进制)无效.
如果你删除前导零,你的代码就可以了:
some_dict =
{
1: "spam",
2: "eggs",
3: "foo",
4: "bar",
8: "anything",
9: "nothing"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |