Python3.1.1将随机值赋给函数

2024-10-01 17:32:46 发布

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

我需要一种方法来分配随机值到一个函数,调用函数和打印值到屏幕上。你知道吗

当我按原样运行代码时,不会重新计算敌人的攻击和用户的防御。每次调用函数时,Python如何重新计算这些变量?你知道吗

import random

enemyName = "Crimson Dragon"

def dragonAtk():
    return random.randint(5,10)

def userDef():
    return random.randrange(8)

userHp = 100
userName = input("What is your name? ")
enemyAttackname = "Fire Blast"

def enemyAttacks():
    global battleDmg
    global userHp
    global enemyAtk
    global userDef

    enemyAtk = dragonAtk()
    userDef = userDef()

    print (">>> " + enemyName + " attacks " + userName + " with "  + enemyAttackname + "!")
    if enemyAtk < userDef:
        print (">>> " + userName + " successfully defended the enemy's attack!")
    elif enemyAtk == userDef:
        print (">>> " + userName + " successfully parried the enemy's attack!")
    else:
        battleDmg = enemyAtk - userDef
        userHp -= battleDmg
        print (">>> " + userName + " takes " + str(battleDmg) + " DMG! "\
        + userName + " has " + str(userHp) + " HP remaining!")

enemyAttacks()
input()
enemyAttacks()
input()

这是我的结果

What is your name? Murk
>>> Crimson Dragon attacks Murk with Fire Blast!
>>> Murk takes 6 DMG! Murk has 94 HP remaining!

Traceback (most recent call last):
  File "C:\Users\Junior\Desktop\python projects\test", line 37, in <module>
    enemyAttacks()
  File "C:\Users\Junior\Desktop\python projects\test", line 22, in enemyAttacks
    userDef = userDef()
TypeError: 'int' object is not callable
>>> 

所以,我看到它通过enemyAttacks()运行了一次,但是第二次给了我一个错误。不知道该怎么办。有什么想法吗?你知道吗


Tags: inputisdefusernamerandomglobalprint调用函数
1条回答
网友
1楼 · 发布于 2024-10-01 17:32:46

此处:

userDef = userDef()

你已经重写了你的函数。因此,当您再次调用该函数时,您正试图调用该函数,但实际上是一个整数(因此出现错误)。你知道吗

将变量重命名为其他名称,这样就不会重写函数。你知道吗

相关问题 更多 >

    热门问题