【问题标题】:Python error - object of type 'bool' has no len() in python quizPython 错误 - “bool”类型的对象在 Python 测验中没有 len()
【发布时间】:2013-03-25 01:37:51
【问题描述】:

我的 python 2.7.3 代码有点麻烦,我正在做一个测验,导入一个包含关键字和定义列表的 csv 文件。我正在将关键字导入列表。我有这个问题,但问题的答案不是,无论我做什么,我都会得到这个 -

`Traceback (most recent call last):
  File "G:\new work (computerscience)\computerscience\coresworkn (programs)\main program\new code modle (b).py", line 94, in <module>
    answer()
  File "G:\new work (computerscience)\computerscience\coresworkn (programs)\main program\new code modle (b).py", line 67, in answer
    cans = random.choice(answ)==question
  File "C:\Python27\lib\random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
TypeError: object of type 'bool' has no len()
`

我尝试了很多方法来解决它,但我不明白在哪里

return seq[int(self.random() * len(seq))] 

来自,因为它不在我的程序中。请有人告诉我我做错了什么以及如何解决它。如果您想查看我的程序,如果需要,我可以提供原始代码。

谢谢。

【问题讨论】:

  • 你知道问题出在cans = random.choice(answ)==question这行,但你不告诉我们answ是什么?
  • answ = random.sample(bio, 3)==[1] answ 是什么,这只是我发布的错误。 @Penfold
  • 那将是问题中的有用信息;)所以 answ 确实是布尔值(真或假),正如 kojiro 已经说过的那样。

标签: python python-2.7 typeerror


【解决方案1】:

你给random.choice一个布尔参数

>>> import random
>>> random.choice(False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
TypeError: object of type 'bool' has no len()

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2015-01-21
    • 1970-01-01
    • 2021-03-03
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多