'if'两个随机数相等时的语句



我试图遇到这样一种情况:当我们同时投掷两枚硬币时,如果两枚硬币都有正面,我们就赢了,如果两个硬币都有反面,我们就输了。

我已经能够使用生成单独投掷其中一枚硬币的结果

def coin_one():
one = [random.randint(1, 100) for x in range(100)]
for x in one:
if x <= 50:
print('Heads')
else:
print('Tails')

以及使用基本相同方法的第二枚硬币:

def coin_two():
two = [random.randint(1, 100) for x in range(100)]
for x in two:
if x <= 50:
print('Heads')
else:
print('Tails')

我试图添加一个条件,当两个硬币同时投掷时,如果coin_one和coin_two中都有"头",则会打印("in")。我该怎么做?

为什么不将两种计算组合在一个方法下,并在一个过程中进行检查?既然你在随机抛硬币;0/1的二进制值足以准确地表示该概率(加上使用它们的隐式CCD_ 1值进行相等性检查的额外好处)。

def coin_toss():
first_coin_tosses = [random.randint(0, 1) for x in range(100)]
second_coin_tosses = [random.randint(0, 1) for x in range(100)]
for first_coin_toss, second_coin_toss in zip(first_coin_tosses, second_coin_tosses):
if first_coin_toss and second_coin_toss:  # Both 1's
# We win.
elif not first_coin_toss and not second_coin_toss:  # Both 0's
# We lose.
else:
# if we get a 1 on one coin and and 0 on the other 
# or vice versa then we neither win nor lose (we try again).

编写两个函数,返回1-100的随机值。然后写下如下条件如果firstnum>50且secondnun>50:打印头其他:打印尾部

您可以通过以下两种方式之一实现您的结果
第一种方法:
这是直接的解决方案。将所有的coin 1和coin 2结果存储在一个列表中,并将其返回到调用方法并检查是否相等。

第二种方法:
您可以为每个硬币1和2的值返回(实际收益),并在调用方法中进行检查。

import random
def coin_one():
one = [random.randint(1, 100) for x in range(100)]
for x in one:
if x <= 50:
print('Heads')
#Use yield to return value and also continue method execution
yield 'Heads' #Add this line
else:
print('Tails')
yield 'Tails' #Add this line

def coin_two():
two = [random.randint(1, 100) for x in range(100)]
for x in two:
if x <= 50:
print('Heads')
yield 'Heads'
else:
print('Tails')
yield 'Tails'
coin_1_result = coin_one()
coin_2_result = coin_two()
for coin_1, coin_2 in zip(coin_1_result, coin_2_result):
if coin_1 == 'Heads' and coin_2 == 'Heads':
print('win')
else:
print('loss')

==运算符用于检查两个基元值(int,string)是否相等

yield通过将每个结果发送到调用函数而不返回或退出被调用的方法(coin_one()或coin_two())来帮助构建列表。

这里,zip(a,b)允许同时迭代两个可迭代项(例如:list)。即,它将在第一次迭代中返回coin_1_result[0]、coin_2_result[0],在第二次迭代中,它将返回coin_1 _result[1]、coin_2 _result[1].依此类推

此外,您还可以注意到,在从两个函数中产生第一组值后,输赢的结果将立即打印出来。

样本输出:



头子
赢得

最新更新