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

时间:2015-06-10 19:22:34

标签: python debugging python-3.x attributeerror

我正在尝试编写一个翻转硬币的程序,并相应地显示Heads或Tails。这就是我所拥有的:

    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'

5 个答案:

答案 0 :(得分:2)

请参阅以下代码段

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之间的元素。换句话说,选择0或1。

然后我设置了一个名为coin的选项列表,用于打印TailsHeads

答案 1 :(得分:1)

import random

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

答案 2 :(得分:1)

此处介绍的大多数解决方案都关注random.randrange()。您也可以使用random.choice()执行此操作,它会从非空序列中返回一个随机元素:

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

答案 3 :(得分:0)

使用此

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

您还希望代码运行多少次。这将永远不会结束。理想情况下,您只需运行一次代码即可获得headstails。我建议从代码中删除while。如果您删除while,请密切注意缩进。

答案 4 :(得分:0)

&#34; INT&#34;是一种基本类型,没有像random()这样的方法。

你必须使用random.randrange(2)

有关详细信息,请参阅:

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