在Python中调用函数?

2024-10-03 21:32:54 发布

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

我不知道如何调用下面的函数我列出了一个框我想做什么,但不知道如何

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
    ################################

Tags: youiftimesleeprandomintplayerprint
2条回答
import random
import time

您需要将enemy_healthplayer_health声明为全局变量,以便它们保持不变:

startingP_health = 30
startingE_health = 30
enemy_health = startingE_health
player_health = startingP_health

此函数不必返回任何内容,因为您可以声明global enemy_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()

这不起作用,因为你在做enemy_health = starting health - 3,这意味着每一轮都会从开始的健康开始。相反,这里从当前值中减去-=enemy_health = enemy_health - 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()

这是一个不好的问题,因为这是一个不具体的网站,但我觉得必须修复这个代码由深权力。我不知道你为什么要睡觉,打印(“”)语句可以替换为'\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()

相关问题 更多 >