Python 上多个元素的 50% 概率

问题描述

我正在尝试在 python 上创建一个“足球”游戏,如果用户想要传球,我的代码应该有 50% 的概率出现不完整的传球或完成 3 到 15 码的传球

我知道要打印码数,代码看起来像

import random
input("Enter r to run and p to pass")
p = print(random.randint(3,15))

但我不确定如何使“不完整”显示为 50% 的概率

解决方法

您可以使用下面的代码。由于您已经定义了一个语句来选择 3-15 之间的随机数,因此您可以创建另一个语句来选择 0 或 1(不保证 %50)。同样在您的代码中,您将打印函数的返回值分配给一个参数。这绝对是错误的! Print 函数不返回任何内容,因此将其分配给另一个变量是没有意义的。

x = random.randint(0,1)
if x == 1:
    random.randint(3,15)
    
else:
    # incomplete pass
,

你可以使用这样的东西。

import random
inp = input("Enter r to run and p to pass")
if(inp == "p"):
    print(random.choice([random.randint(3,15),0]))
elif(inp == "r"):
    print("ran successfully")

这个:random.choice([random.randint(3,0]) 是重要的一点。 random.choice 在列表中取多个值(在本例中为 2),并随机选择一个(2 个值 => 50% 概率)。

我还修复了输入输出的问题。要从用户那里获得输入,您可以将输入的值分配给这样的变量:example = input("Your input here: ")。如果您运行那行代码,并用 potato 回答,例如,您将能够打印示例并返回土豆(或用户回答的任何内容)。

如果您想真正充实您的游戏,我建议您查看模板字符串。那些让你做这样美妙的事情:

import random
inp = input("Enter r to run and p to pass")
if(inp == "p"):
    print(random.choice([f"Successfully passed the ball {random.randint(3,15)} yards","You tripped,the ball wasn't passed."]))
elif(inp == "r"):
    print("Ran successfully.")