我正在学习Python,而且我在浏览字典方面遇到了一些麻烦。我想循环遍历整个字典并使用以下代码打印每个值:
d = {"Room" : 100, "Day" : 25, "Night" : 88}
for key in d:
print d[key]
但是收到错误消息:
Traceback (most recent call last):
File "python", line 9, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 18: ordinal not in range(128)
答案 0 :(得分:0)
您在代码中隐藏了无效字符。 Python2默认使用ascii编码,因此它不允许超过127的字符(0xc3 == 195)。由于它似乎是一个错误,删除整个有问题的行并重新键入它 - 您的代码段在这里工作得很好。
您还可以将编码设置为utf-8,这应该会删除错误。但是你应该避免这个修复,因为它似乎不适合这种情况:
# top of the file
import sys
sys.setdefaultencoding('utf8')
初始答案,在实际错误之前:
您正在使用Python版本3+,它已更改print
的语义。它现在是一个函数,错误建议也是如此,并使用print(somevalue)
。
Python2:
>>> for key in d:
... print d[key]
...
88
100
25
>>> type(print)
File "<stdin>", line 1
type(print)
^
SyntaxError: invalid syntax
Python3:
>>> for key in d:
... print d[key]
File "<stdin>", line 2
print d[key]
^
SyntaxError: Missing parentheses in call to 'print'
>>> type(print)
<class 'builtin_function_or_method'>
答案 1 :(得分:-3)
查看Python dict
文档。如果你想迭代值:
for value in d.values():
print(value)
答案 2 :(得分:-3)
你可以使用:
d = {"Room" : 100, "Day" : 25, "Night" : 88}
for key, value in d.items():
print key, value