0

Error; Variable Referenced Before Assignmentfor myhp を取得しています。私の .py ファイルの先頭には、「myhp = 20」があります。

これを機能させるにはどうすればよいですか?

def fightmode(name, hp, dmg, gold):
    print '\n\n\nYou are in a fight with %s' %name
    print '%s has %sHP' %(name, hp)
    while myhp > 0 and hp > 0:
        print '\n\t1. Attack \n\t2. Guard \n\t3. Run away.'
        opt1= ''
        allowed = ["1", "2", "3"]
        while opt1 not in allowed:
            opt1 = raw_input("\nWhat will you do? ")
            if opt1 == "1":
                hp = hp - mydmg
                print "You have inflicted %d damage on %s. %s's HP is %s" %(mydmg, name, name, hp)
            if opt1 == "2":
                myhp = myhp+5
                print "You are now guarding yourself. Your HP is now %d" %myhp
4

2 に答える 2

2

global myhp関数の先頭に挿入します。関数内の変数に代入すると、グローバルとして宣言しない限り、Python はそれをローカルとして扱います。

于 2012-09-26T05:38:17.180 に答える
0

どこに myhp = 20 があるのか​​わかりません。myhp はここではローカルなので、割り当てられていません。グローバルを使用する場合global myhpは、関数の先頭に置きます。

于 2012-09-26T05:36:51.120 に答える