我的硬币翻转代码做错了什么?

What am I doing wrong in my coin flip code?

我正在尝试编写一个程序来抛硬币,并相应地显示正面或反面。这就是我所拥有的:

    from random import random
    while True:

        for i in range (2):
            spin = i.random()
            if spin == 0:
                print ("Heads")
            else:
                print ("Tails")

但我一直收到错误消息:

Traceback (most recent call last):
  File "C:/Users/Yamnel/Desktop/Python Programs/coin flip.py", line 5, in     <module>
    spin = i.random()
AttributeError: 'int' object has no attribute 'random'
import random

while True:
    result = random.randrange(2)
    if result == 0:
       print ("Heads")
    else:
       print ("Tails")

使用这个

from random import randrange
while True:
        spin = randrange(0,2)
        if spin == 0:
            print ("Heads")
        else:
            print ("Tails")

还有多少次你希望你的代码运行。这永远不会结束。理想情况下,您希望您的代码 运行 一次只是为了获得 headstails。我建议从代码中删除 while。如果删除 while.

,还要注意缩进

"int" 是一种基本类型,没有像 random() 这样的方法。

你必须使用 random.randrange(2)

有关详细信息,请参阅:

https://docs.python.org/2/library/random.html(官方文档)

请参阅以下代码段

from random import random
coin = ['Heads', 'Tails']
num_of_tosses = 10
for i in range (num_of_tosses):
    spin = randrange(0,2)
    print coin[spin]

我正在使用 randrange 从 0 到 1 随机 select 个元素。换句话说,select 0 或 1。

然后我正在设置一个选项列表,称为 coin,用于打印 TailsHeads

此处介绍的大多数解决方案都集中在 random.randrange() 上。您也可以使用 random.choice() 执行此操作,其中 returns 来自非空序列的随机元素:

>>> from random import choice
>>> coin = 'Heads Tails'.split()
>>> FLIPS = 5
>>> for _ in range(FLIPS):
...   print(choice(coin))
...
Tails
Heads
Tails
Heads
Tails
>>>