微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的Python函数在被调用时没有启动?

如何解决为什么我的Python函数在被调用时没有启动?

| 每当我调用start()函数时,在声明它之后,都会收到一条错误消息,指出它不存在。我的完整代码如下。
import random
import time
global monsters
monsters = [\'Goblin\',\'Orc\',\'Knight\',\'Unicorn\',\'Black Bear\',\'White Dragon\',\'Black Dragon\',\'Dark Knight\',\'Undead Corpse\']
global player_level
player_level = 1
global player_exp
global monster_level
monster_level = monster_determ_easy
player_exp = 0
player_exp_n = 10
global monster_attack
global player_attack
player_attack = random.randint(1,4) + player_level
global monster_levels
global monster_determ_easy
global monster_determ_medium
global monster_determ_hard
global monster_determ_epic
global attacks
global gold
gold = 0
attacks = [\'Punch\',\'Fireball\']
monster_determ_easy = random.randint(1,3)
monster_levels_easy = player_level - monster_determ_easy

monster_determ_medium = random.randint(1,3)
monster_levels_medium = player_level + monster_determ_medium

monster_determ_hard = random.randint(3,5)
monster_levels_hard = player_level + monster_determ_hard

monster_determ_epic = random.randint(5,10)
monster_levels_epic = player_level + monster_determ_epic

monster_attack = monsters_levels + random.randint(1,3)

def start():
    if player_exp>=player_exp_n:
            player_level=player_level+1
            print \"You\'ve reached level \",player_level
            gold=gold+random.randint(1,15) + player_level
            print \'You were awared \',\' gold!\'
            start()
            command = raw_input(\">\")
    if command == \"fight\":
            player_attack = random.randint(1,4) + player_level
            monster_attack = monsters_levels + random.randint(1,3)
            choose_monster = random.choose(monsters)
            print \'You encounter a level \',monster_determ_easy,choose_monster,\'.\'
            time.sleep(1)
            print \'Prepare to fight!\'
            strike = random.random()
            if strike>=0.5:
                if player_attack >= monster_attack:
                    print \'You slained the \',\'!\'
                    exp_choose = random.randint(1,5) + player_level
                    player_exp = player_exp + exp_choose
                    print \'You were awarded \',exp_choose,\' XP!\'
                    start()

start()
# This was just added
    

解决方法

        因为第一个if语句的计算结果为false,所以您永远没有机会设置命令变量。     ,        因为它只能从自身内部调用。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。