【发布时间】:2014-02-12 17:59:57
【问题描述】:
下面是我编写的程序的一部分代码,它绝对是非常基本的。
pc1 = random.choice(cards)
cca1 = random.choice(cards)
while (pc1 == cca1):
cca1 = random.choice(cards)
ccb1 = random.choice(cards)
while (pc1 == ccb1) or (cca1 == ccb1):
ccb1 = random.choice(cards)
pc1、cca1 和 ccb1 只是变量的名称,为了便于使用而缩写。这部分代码所做的是尝试从名为卡的字典中获取 3 个条目。它使用while函数来确保选择的卡片不一样;它们总是不同的。
这一直持续到我的字典中有 9 个唯一变量 52,它工作正常,除了有时会产生以下错误:
Traceback (most recent call last):
File "C:\Python33\Programs\Poker\1.0.py", line 231, in <module>
ccc2 = random.choice(cards)
File "C:\Python33\lib\random.py", line 252, in choice
return seq[i]
KeyError: 0
上面错误中的变量 (ccc2) 只是之前显示的代码的延续,并且据说导致错误的变量每次都会更改。
该错误仅在某些时候发生(有时程序运行良好,有时它显示错误),并且它发生的行也随着每次出现而变化。 我知道我的代码效率低下,但我真的只是想阻止这个错误,也许还有一些关于如何改进的有用想法/提示。
再一次;做了它应该做的,但无法识别地返回看似随机的时间提到的错误,原因似乎是随机的。
提前致谢!
【问题讨论】:
标签: python python-3.x keyerror