0

我正在编写一个关于掷硬币的程序,我希望用户输入数字并让程序多次翻转硬币。

一旦用户给出数字,程序就会停止

这就是我所拥有的

import random
flips = 0
heads=0
tails=0
numFlips = raw_input("Flips ")
while flips < numFlips:
    flips += 1
    coin = random.randint(1, 2)
    if coin == 1:
        print('Heads')
        heads+=1
    if coin == 2:
        print ('Tails')
        tails+=1
total = flips
print(total)
print tails
print heads
4

2 回答 2

2

numFlips是一个str。您必须将其转换为int第一个。

numFlips = int(raw_input("Flips "))

否则,您的检查flips < numFlips将不起作用,因为所有ints 都“小于”任何 string

(此外,您想为用户输入非整数的情况添加一些错误处理)

于 2013-10-22T13:28:37.470 回答
-1

在线的

numFlips = raw_input("Flips ")

raw_input()读取一个字符串:http ://docs.python.org/2/library/functions.html#raw_input

通过执行将其转换为整数int(raw_input("Flips "))

您还可以使用input()将字符串计算为 python 表达式,在这种情况下将计算为 int。

编辑:正如@bruno desthuilliers 所指出的,使用 input() 是不安全的,应该将 raw_input() 转换为 int。

于 2013-10-22T13:33:27.890 回答