在Python中调用函数?

在Python中调用函数?,python,function,python-3.5,Python,Function,Python 3.5,我不知道如何调用下面的函数,我列出了一个框,其中列出了我想做的事情,但不知道如何调用 import random import time startingP_health = 30 startingE_health = 30 def player_attack(): global startingE_health time.sleep(1) print ("What ability would you like to use? (free speach(fs), ca

我不知道如何调用下面的函数,我列出了一个框,其中列出了我想做的事情,但不知道如何调用

import random
import time

startingP_health = 30
startingE_health = 30

def player_attack():
    global startingE_health
    time.sleep(1)
    print ("What ability would you like to use? (free speach(fs), capatalism(c), or punch(p)")
    ability_choice = input()

    if(ability_choice == "fs"):
        enemy_health = startingE_health-3
        enemy_heath = int(enemy_health)
    elif(ability_choice == "c"):
        enemy_health = startingE_health-(random.randint(1,6))
        enemy_heath = int(enemy_health)
    elif(ability_choice == "p"):
        enemy_health = startingE_health-(random.randint(2,4))
        enemy_heath = int(enemy_health)
    else:
        print("you fell.")

    time.sleep(1)

    print ("Enemie's health is now: ",enemy_health)
    print("")

    return int(enemy_health)


def enemy_attack():
    global startingP_health
    time.sleep(1)
    print ("Enemy kicks you")
    print("")
    player_health = startingP_health - (random.randint(1,3)
    player_health = int(player_health)
    time.sleep(1)
    print ("Your health is now ",player_health)
    print ("")
    return int(player_health)

def battle_trotsky():
    global player_health
    print ("Enemy appears")
    print ("")
    time.sleep(1)
    while player_health > 0 and enemy_health > 0:
        ##############################
        #call function player_attack
        #call enemy_attack
        ##############################
        if player_health <=0:
            break
        if enemy_health <= 0:
            time.sleep(1)
            print ("You have killed the enemy")

        if player_health <= 0:
            print("Sorry you failed the mission you must restart the mission"))

    ################################
    #initate function sequence
    ################################
随机导入
导入时间
启动P_健康=30
开始健康=30
def player_attack():
全球启动健康
时间。睡眠(1)
打印(“您希望使用什么技能?(自由演讲(fs)、capatalism(c)或punch(p)”)
能力\选择=输入()
如果(能力选择=“fs”):
敌人健康=开始健康-3
敌方健康=智力(敌方健康)
elif(能力选择==“c”):
敌人生命=开始生命-(random.randint(1,6))
敌方健康=智力(敌方健康)
elif(能力选择=“p”):
敌人生命=开始生命-(random.randint(2,4))
敌方健康=智力(敌方健康)
其他:
打印(“你摔倒了。”)
时间。睡眠(1)
打印(“敌人的生命值现在为:”,敌人的生命值)
打印(“”)
返回智力(敌方生命值)
定义敌人的攻击()
全球启动公共卫生
时间。睡眠(1)
打印(“敌人踢你”)
打印(“”)
玩家健康=开始健康-(random.randint(1,3)
玩家健康=int(玩家健康)
时间。睡眠(1)
打印(“您现在的健康状况”,玩家健康状况)
打印(“”)
返回整数(玩家健康状况)
def battle_trotsky():
全球玩家健康
打印(“敌人出现”)
打印(“”)
时间。睡眠(1)
当玩家生命值>0且敌人生命值>0时:
##############################
#调用函数player\u攻击
#呼叫敌人进行攻击
##############################

如果player_health这对这个网站来说不是一个好问题,因为它不具体,但我觉得有必要通过深层次的力量来修复这个代码。我不知道你为什么要睡觉,打印(“”)在以前的打印中,语句可以替换为“\n”,并且您不断地将玩家的健康值重新分配给起始健康值,该值永远不会达到0,因此您必须使健康值为全局值

这里有一个有效的例子

import random

player_health = 30
enemy_health = 30

def player_attack():
    global enemy_health
    ability_choice = input("What ability would you like to use? (free speach(fs), capatalism(c), or punch(p)")

    if(ability_choice == "fs"):
        enemy_health -= 3
    elif(ability_choice == "c"):
        enemy_health -= random.randint(1,6)
    elif(ability_choice == "p"):
        enemy_health -= random.randint(2,4)
    else:
        print("you fell.")
    print ("Enemy's health is now: "+str(enemy_health)+'\n')

def enemy_attack():
    global player_health
    print ("Enemy kicks you")
    player_health -= random.randint(1,3)
    print ("Your health is now "+str(player_health)+"\n")

def battle_trotsky():
    print ("Enemy appears\n")
    while player_health > 0 and enemy_health > 0:
        player_attack()
        if check_game_over():
            return
        enemy_attack()
        if check_game_over():
            return

def check_game_over():
    global player_health, enemy_health
    if enemy_health <= 0:
        print ("You have killed the enemy\n")
        return True
    elif player_health <= 0:
        print("Sorry you failed the mission you must restart the mission")
        return True
    else:
        return False

if __name__=='__main__':
    battle_trotsky()
随机导入
玩家健康=30
敌人的生命=30
def player_attack():
全球健康
能力\选择=输入(“你想使用什么能力?(自由演讲(fs)、capatalism(c)或punch(p)”)
如果(能力选择=“fs”):
敌人的生命-=3
elif(能力选择==“c”):
敌人生命-=随机。随机数(1,6)
elif(能力选择=“p”):
敌人生命-=随机。随机数(2,4)
其他:
打印(“你摔倒了。”)
打印(“敌人的生命值现在为:”+str(敌人的生命值)+'\n')
定义敌人的攻击()
全球玩家健康
打印(“敌人踢你”)
玩家_健康-=random.randint(1,3)
打印(“您现在的健康状况为”+str(玩家健康状况)+”\n”)
def battle_trotsky():
打印(“敌人出现\n”)
当玩家生命值>0且敌人生命值>0时:
玩家_攻击()
如果检查游戏结束():
回来
敌人的攻击
如果检查游戏结束():
回来
def check_game_over():
全球玩家健康,敌人健康
如果你健康
您需要将
敌人健康状况
玩家健康状况
声明为全局,以便它们持续存在:

startingP_health = 30
startingE_health = 30
enemy_health = startingE_health
player_health = startingP_health
此函数不必返回任何内容,因为您先声明
全局敌方健康状况
,然后为其指定新值:

def player_attack():
    global enemy_health
    time.sleep(1)
    print ("What ability would you like to use? (free speech(fs), capitalism(c), or punch(p)")
    ability_choice = input()
这不起作用,因为您正在执行
敌方健康=起始健康-3
,这意味着每一轮都将从起始健康重新开始。而在这里,从当前值中减去
-=
敌方健康=敌方健康-3

    if(ability_choice == "fs"):
        enemy_health -= 3
    elif(ability_choice == "c"):
        enemy_health -= random.randint(1,6)
    elif(ability_choice == "p"):
        enemy_health -= random.randint(2,4)
    else:
        print("you fell.")
    time.sleep(1)
    print ("Enemy's health is now: ",enemy_health)
    print("")


def enemy_attack():
    global player_health
    time.sleep(1)
    print ("Enemy kicks you")
    print ("")
    player_health -= random.randint(1,3)
    time.sleep(1)
    print ("Your health is now ",player_health)
    print ("")

def battle_trotsky():
    global player_health 
    global enemy_health 
    print ("Enemy appears")
    print ("")
    time.sleep(1)
    while player_health > 0 and enemy_health > 0:
通过
name()
调用函数,如下所示:

        player_attack()
        enemy_attack()
        if enemy_health <= 0:
            time.sleep(1)
            print ("You have killed the enemy")

        if player_health <= 0:
            print("Sorry you failed the mission you must restart the mission")

battle_trotsky()
player_-attack()
敌人的攻击

如果CulyYyHealthPosits欢迎堆栈溢出,如果代码工作,你可能会考虑。否则,请包括一个详细的和具体的描述什么是错误的。@叶我想创建一个游戏,基本上有3个敌人出现在你面前,你选择了3个攻击类型中的1个,持续的战斗与更新的健康每次攻击直到一个DI。故事类型的游戏,但我可以添加故事情节,只是想让战斗机制工作,而不是:(.现在清楚了吗?
raw\u input()
是python2.OP指定的python3,其中
input()
这就是你想要创建的游戏,在你选择3种攻击类型中的1种之前,基本上会出现3个敌人,持续战斗,每次攻击都会更新生命值,直到有一次死亡。我一周前开始学习python,我想我可能需要重新学习一些东西,但你认为你可以帮我完成代码,可能是或者你花3分钟。我不想为你要求太多,但如果你有时间的话。这段代码应该适用于一个敌人和你,玩家。花时间理解这些变化,并尝试自己实现其余的。从来没有人说过学习很容易;)@克里斯肯扬你对程序的结构做了一些相当实质性的改变。也许有必要解释一下为什么他们让程序整体上更好。2谢谢你,这正是我需要解释的,听着,我正在尝试制作一个有多个敌人和一个陈腐故事情节的游戏,你认为你能帮上忙吗我在某些地方需要帮助,或者当我陷入困境时,我应该在这里发帖。真诚地感谢你帮助我,不管你是谁answer@Uri.K如果你朝着自己的目标努力,人们会更愿意帮助你:)祝你好运……每个人都必须从头开始!
        player_attack()
        enemy_attack()
        if enemy_health <= 0:
            time.sleep(1)
            print ("You have killed the enemy")

        if player_health <= 0:
            print("Sorry you failed the mission you must restart the mission")

battle_trotsky()