Python绝对初学者第5章挑战#1:出现错误

Python绝对初学者第5章挑战#1:出现错误,python,python-3.x,Python,Python 3.x,在电子书《Python编程绝对初学者》的第5章中 创建一个程序,以随机顺序打印单词列表。 程序应打印所有单词,不得重复任何单词。“ 为了这次挑战,我做到了这一点 我不知道这些错误是什么以及如何修复它们。那么如何帮助自己解决这些问题呢 代码:- import random WORDS = ["OVERUSED", "CLAM", "GUAM", "TAFFETA", "PYTHON"] x = len(WORDS) + 1 count = 0 if count == x: exit(0)

在电子书《Python编程绝对初学者》的第5章中 创建一个程序,以随机顺序打印单词列表。 程序应打印所有单词,不得重复任何单词。“

为了这次挑战,我做到了这一点 我不知道这些错误是什么以及如何修复它们。那么如何帮助自己解决这些问题呢

代码:-

import random
WORDS = ["OVERUSED", "CLAM", "GUAM", "TAFFETA", "PYTHON"]
x = len(WORDS) + 1
count = 0
if count == x:
    exit(0)
while count < int(x):

    word = random.choice(WORDS)
    WORDS.remove(word)  
    print(word)
    count += 1

**Output:-**
root@kali:~/Desktop/Projects# python3 randomWords.py
PYTHON
OVERUSED
TAFFETA
GUAM
CLAM
Traceback (most recent call last):
  File "/usr/lib/python3.4/random.py", line 253, in choice
    i = self._randbelow(len(seq))
  File "/usr/lib/python3.4/random.py", line 230, in _randbelow
    r = getrandbits(k)          # 0 <= r < 2**k
ValueError: number of bits must be greater than zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "randomWords.py", line 9, in <module>
    word = random.choice(WORDS)
  File "/usr/lib/python3.4/random.py", line 255, in choice
    raise IndexError('Cannot choose from an empty sequence')
IndexError: Cannot choose from an empty sequence
随机导入
单词=[“过度使用”、“蛤蜊”、“关岛”、“塔夫绸”、“蟒蛇”]
x=len(字)+1
计数=0
如果计数=x:
出口(0)
当计数r=getrandbits(k)#0您将
x
定义为
len(WORDS)+1
,但您的计数从0开始。正因为如此,您正试图获取1个过多的随机单词。请尝试使用
x=len(单词)
。另外,当count
时,您可以只说
x
已经是一个整数了。

看一眼,看起来你想要的是
x=len(WORDS)
而不是
+1
@pushkin:我认为应该是
x=len(WORDS)
。他用的是
不,兄弟,我要的是实际的字数,所以我用了+1@zondo是的,你说得对。fixed@SaWin
len(单词)
给出了实际单词数。太好了。你介意把我的答案标为正确答案吗?对不起,我也是新来的。我很想,但我该怎么做呢?在我的答案的计票下面应该有一个灰色的复选标记。如果你点击它,它应该变成绿色。stack说“你不能在1分钟内接受答案。”这可能是因为还没有到15分钟。