如何有百分比的机会运行命令

2024-07-06 21:54:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有10件东西,我想打印如果他们被选中。不过,每种情况发生的几率应该是不同的。

我试着做了以下事情:

    chance = (random.randint(1,100))
    if chance < 20:
        print ("20% chance of getting this")

问题是,如果我再做一个,比如说,chance<;25,如果randint是10,chance<;25和chance<;20不是同时运行吗?

这是我想在以后有机会的事情发生的代码。

print ("You selected Grand Theft Auto")
gta = input ("To commit GTA input GTA")
if gta in ("gta", "Gta", "GTA"):

编辑:

好吧,我试过了,但它一直有3个输出。

print ("You selected Grand Thief Auto")
    gta = input ("To commit GTA type GTA")
    if gta in ("gta", "Gta", "GTA"):
        chance = random.randint(0,100)
        if chance <= 1:
            print ("You stole a Bugatti Veryron")
        chance = random.randint(0,100)
        if chance <= 5:
            print ("You stole a Ferrari Spider")
        chance = random.randint(0,100)
        if chance <= 10:
            print ("You stole a Audi Q7")
        chance = random.randint(0,100)
        if chance <= 15:
            print ("You stole a BMW X6")
        chance = random.randint(0,100)
        if chance <= 20:
            print ("You stole a Jaguar X Type")
        chance = random.randint(0,100)
        if chance <= 25:
            print ("You stole a Ford Mondeo")
        chance = random.randint(0,100)
        if chance <= 30:
            print ("You stole a Audi A3")
        chance = random.randint(0,100)
        if chance <= 35:
            print ("You stole a Ford Fiesta")
        chance = random.randint(0,100)
        if chance <= 40:
            print ("You stole a Skoda Octavia")
        chance = random.randint(0,100)
        if chance <= 45:
            print ("You got caught!")

Tags: ltyouautoinputifrandom事情print
2条回答

你的密码是正确的。解决这个问题的方法是首先,在第一个if-statement中添加一个=,如下所示:

 if chance <= 20

接下来要做的是在打印结束时添加一个return语句,如下所示:

 if (chance <= 20):
      print(#Stuff)
      return

这个return语句将完成程序正在执行的任何操作,并返回到另一个任务,或者只是完成。

最后,要做的最后一件事是添加所有其他增量,例如:

 if (chance <= 20):
      print(#Stuff)
      return
 if (chance <= 25):
      print(#Stuff)
      return

 ...

 if (chance <= #last_number):
      print(#Stuff)
      return

明智的做法是,你要确定你正在把所有的事情都搞砸,正如你所寻找的可能性所表明的那样。

祝你好运。

好吧,如果你想要两个互相排斥的事件,一个发生在20%的时间里,另一个发生在25%的时间里,那么

chance = random.randint(1,100)
if chance <= 20:
    print "20% chance of getting this"
elif chance <= 20+25:
    print "25% change of getting this"

如果你希望它们是独立的,而不是相互影响,你必须生成另一个随机数。

chance = random.randint(1,100)
if chance <= 20:
    print "20% chance of getting this"

chance = random.randint(1,100)
if chance <= 25:
    print "25% change of getting this"

相关问题 更多 >