您只需要注意heads
(变量)与'heads'
(字符串)不同。在任何情况下,有更好的(嗯,更 Pythonic)的方法来做简单的二选一,像这样在 Python 中。
您可以使用类似以下列表理解的内容:
>>> import random
>>> count = 100
>>> heads = len([1 for i in range(count) if random.randint(0,1) == 1])
>>> tails = count - heads
>>> print(heads, tails)
43 57
的表达式heads
可以分解为:
- 从一个空列表开始,循环运行 100 次。
0/1
对于随机值为 的每次1
,将 1 添加到列表中。
- 获取最后的列表长度,它是您翻转的次数 1。
0/1
或者,您可以使用正好 100 个随机值填充列表并将它们相加:
>>> heads = sum([random.randint(0,1) for i in range(100)])
这比我提供的原始代码片段更简单,但它没有显示列表理解的全部功能,因为它可以进行转换、迭代和选择:例如,以下代码给出了小于或等于所有正偶数的平方到 20:
>>> [i * i for i in range(1,21) if i % 2 == 0]
[4, 16, 36, 64, 100, 144, 196, 256, 324, 400]