Skip to main content
 首页 » 编程设计

python之使用函数时保持获得相同的随机值

2025年05月04日15lautakyan007

我想制作一个程序来执行某种战斗日志。你有 50% 的几率击中敌人并造成 10 到 25 的伤害。

from random import randint 
 
hitChance = randint(0,1) 
damage = 10 + randint(0, 15) 
HP = 100 
 
def atack(): 
    global HP 
 
    if hitChance is 0: 
        print("Missed") 
 
    elif hitChance is 1: 
        HP -= damage 
        print(damage, " delt") 
        print(HP, " left") 
 
while HP > 0: 
    atack() 
    print("You defeated the enemy!") 

然而,当我运行这段代码时,它要么陷入“未命中”的无限循环,要么造成相同的伤害值。

请您参考如下方法:

从全局空间中取出变量并将它们放入函数中。

HP = 100 
 
def atack(): 
    global HP 
    hitChance = randint(0,1) 
    damage = 10 + randint(0, 15) 
 
    if hitChance == 0: 
        print("Missed") 
 
    elif hitChance == 1: 
        HP -= damage 
        print("{} delt".format(damage)) 
        print("{} HP left".format(HP)) 

然后,在 while 循环之外进行最后的打印调用。

while HP > 0: 
    atack() 
 
print("You defeated the enemy!") 

示例输出:

14 delt 
86 HP left 
14 delt 
72 HP left 
15 delt 
57 HP left 
Missed 
Missed 
Missed 
Missed 
Missed 
23 delt 
34 HP left 
10 delt 
24 HP left 
10 delt 
14 HP left 
Missed 
Missed 
Missed 
Missed 
15 delt 
-1 HP left 
You defeated the enemy!