【发布时间】:2014-11-24 19:48:07
【问题描述】:
我有一个列表,称为协议,其中填充了 Yatzy 中的播放器对象。每个对象都是一个包含时刻(如满屋)和值(例如 20)的字典。
我想打印协议,但现在不知道如何制定代码。
我希望它看起来像这样:
球员名字一行
在“一”时刻,每个玩家的分数都为一条线
等等。
到目前为止我已经尝试过了(protokoll=protocol, momentlist= 包含所有时刻的列表(ones、twos 等):
def Utskrift(protokoll, momentlist):
for key in momentlist:
print ("%-20s" % key)
for deltagare in protokoll:
print (deltagare.protokoll[key], "\t",)
不起作用,错误消息说明了我用来制作每个玩家的 Spelare 类。
错误信息:
Traceback (most recent call last):
File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 160, in <module>
meny()
File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 139, in meny
Utskrift(protokoll, momentlist)
File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 93, in Utskrift
print (deltagare.protokoll[key], "\t",)
AttributeError: 'Spelare' object has no attribute 'protokoll'
问题是当我使用时
对于protokoll中的玩家
打印(播放器) 它可以正常工作(尽管它没有按我的意愿打印)。
Uskrift 的函数看起来对吗?
感谢您的帮助
【问题讨论】:
-
“错误信息说明了 Spelare 类”。那么,这可能意味着您的 Spelare 课程有问题。我们无法提供更多建议,因为我们不知道类或错误是什么样的。
-
感谢您的帮助。我已经更新了信息。事情是,当我使用更简单的打印功能时,它可以正常工作。你觉得我的函数 Utskrift 怎么样?
-
如果您的
Spelare类没有self.protokoll属性,您可能会收到该错误。您的 Spelare 类有哪些属性? -
好的。我已经用我的班级 Spelare 更新了信息。
标签: python list dictionary printing