'if' 两个随机数相等时的语句
'if' statement for when two random numbers are equal
我正在尝试一种情况,当我们同时抛两个硬币时,如果两个硬币都是正面,我们就赢,如果两个硬币都是反面,我们就输。
我已经能够使用以下方法生成单独抛硬币的结果:
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 中都有 'heads',当两个硬币被抛在同一时间。我该怎么做?
为什么不将两种计算结合在一种方法下,并在一次通过中进行检查?由于您要随机抛硬币;二进制值 0/1 足以准确表示此概率(使用其隐式 bool
值进行相等性检查的额外好处)。
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).
编写两个函数,它们将 return 从 1 到 100 的随机值。
然后在下面写下条件
如果 firstnum >50 且 secondnun > 50:
打印头
别的:
打印尾
您可以通过以下两种方式之一实现您的结果。
第一种方法:
这是直接的解决方案。
将所有硬币一和硬币二的结果存储在一个列表中,然后 return 将其传递给调用方法并检查是否相等。
第二种方法:
您可以 return (实际收益)返回每个硬币 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 通过将每个结果发送到调用函数而无需 returning 或退出被调用方法(coin_one() 或 coin_two())来帮助构建列表。
这里 zip(a, b) 允许同时迭代两个可迭代对象(示例:列表)。即它会 return coin_1_result[0], coin_2_result[0] 在第一次迭代中,在第二次迭代中它 returns coin_1_result[1], coin_2_result[1] 等等。
此外,您还可以注意到,在从两个函数产生第一组值后,输赢结果将立即打印出来。
示例输出:
头
尾巴
损失
头
头
获胜
我正在尝试一种情况,当我们同时抛两个硬币时,如果两个硬币都是正面,我们就赢,如果两个硬币都是反面,我们就输。
我已经能够使用以下方法生成单独抛硬币的结果:
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 中都有 'heads',当两个硬币被抛在同一时间。我该怎么做?
为什么不将两种计算结合在一种方法下,并在一次通过中进行检查?由于您要随机抛硬币;二进制值 0/1 足以准确表示此概率(使用其隐式 bool
值进行相等性检查的额外好处)。
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).
编写两个函数,它们将 return 从 1 到 100 的随机值。 然后在下面写下条件 如果 firstnum >50 且 secondnun > 50: 打印头 别的: 打印尾
您可以通过以下两种方式之一实现您的结果。
第一种方法:
这是直接的解决方案。
将所有硬币一和硬币二的结果存储在一个列表中,然后 return 将其传递给调用方法并检查是否相等。
第二种方法:
您可以 return (实际收益)返回每个硬币 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 通过将每个结果发送到调用函数而无需 returning 或退出被调用方法(coin_one() 或 coin_two())来帮助构建列表。
这里 zip(a, b) 允许同时迭代两个可迭代对象(示例:列表)。即它会 return coin_1_result[0], coin_2_result[0] 在第一次迭代中,在第二次迭代中它 returns coin_1_result[1], coin_2_result[1] 等等。
此外,您还可以注意到,在从两个函数产生第一组值后,输赢结果将立即打印出来。
示例输出:
头
尾巴
损失
头
头
获胜