正面或反面/抛硬币程序

  • 本文关键字:硬币 程序 python
  • 更新时间 :
  • 英文 :


我想写一个掷硬币或"正面或反面"的程序,但是当我运行它时,每次都只有正面或反面。我不明白为什么,这是一个逻辑错误,所以我发现很难发现。

import random
flips = 1
coin = random.randint(1,2)
heads = 0
tails= 0 
while flips <= 100:
     if coin == 1:
        print("Heads")
        heads += 1
        flips +=1
     elif coin == 2:
        print("tails")
        tails += 1
        flips +=1
print("You got", heads, "heads and", tails,"tails!")

input("Exit") 

Python省去了在其他语言中必须编写的大量代码。这个程序只有三行。使用random()方法,您可以非常简单地做到这一点。

这是我的代码。

import random 
coin_flip = ['heads','tails'] 
print random.choice(coin_flip) 
import random
flips = 0
heads = 0
tails = 0
while flips < 100:
    if random.randint(1,2) == 1:
        print("heads")
        heads += 1
    else:
        print("tails")
        tails += 1
    flips += 1
print("you got ", heads," heads, and ", tails," tails!")
input ("exit")

所做的更改:从0开始,只有在进行翻转时才增加计数(此外,每次迭代都会进行翻转,因为大小写足够)此外,我没有将toss转换为单独的变量,而是立即进行比较。

我的输出是:

you got  54  heads, and  46  tails!
exit

而不列出单独的翻转

注意;这是我第一次写python。如果有优化的空间,让我知道!

试试这个:

import random
flips = 1
heads = 0
tails= 0
while flips <= 100:
    coin = random.randint(1,2)
    flips +=1
    if coin == 1:
        print("Heads")
        heads += 1
    elif coin == 2:
        print("tails")
        tails += 1
print("You got " + str(heads) +  " heads and " + str(tails) + " tails!")
raw_input("Exit")

所做的编辑:

  1. 将coins变量放入循环中,以便每次调用时分配一个新的随机值。

最新更新