python - 在添加/删除术语时从列表中生成随机数
问题描述
我正在编写一个程序,其中有 6 个人组成的“小组”试图猜测 1 到 6 之间的数字。如果第一个人猜对了,那么他们的分数就会加 1,如果不是,第二个人会猜. 如果他们是对的,那么他们的分数就会加 1,依此类推。但是,第二个人无法猜出与第一个人相同的数字——这是我一直遇到的问题。出于某种原因,我得到
TypeError:“NoneType”类型的对象没有 len()
我认为 NoneType 是某种可变的东西,但我不太确定。我也没有使用函数 len 。代码如下。
a = [1, 2, 3, 4, 5, 6]
judge = random.choice(a)
p1guess = random.choice(a)
a = a.remove(p1guess)
p2guess = random.choice(a)
a = a.remove(p2guess)
p3guess = random.choice(a)
a = a.remove(p3guess)
p4guess = random.choice(a)
a = a.remove(p4guess)
p5guess = random.choice(a)
a = a.remove(p5guess)
p6guess = random.choice(a)
解决方案
remove
返回 none 并原地删除,不要将其重新分配回 a.
...
p1guess = random.choice(a)
a.remove(p1guess)
p2guess = random.choice(a)
...
否则,您可以只洗牌 a 并一次分配它们,
a = [1, 2, 3, 4, 5, 6]
random.shuffle(a)
judge = random.choice(a)
p1guess, p2guess, p3guess, p4guess, p5guess, p6guess = a
推荐阅读
- php - PayPal PayPalCheckoutSdk 获取付款人的账单地址
- python - unittest 自动模拟而无需分配
- javascript - 维护 useFieldArray react-hook-form 的状态
- javascript - AWS.CloudWatch 构造函数设置 batch_size 和 batch_limit
- python-3.x - 插槽可用性的异步队列
- google-sheets - 谷歌表格中列数据的排列
- python - 在单个模块上运行 pytest 时的不同覆盖率
- python - 如何将 .qml 扩展名更改为 .ui 以在 pyqt5 应用程序中使用它
- python - 随机分布计算
- powerbi - 如何在 Power BI Web 中对 OData 源进行基本身份验证