2016-12-24 5 views
-2

Я знаю, что для этого существуют похожие потоки, мне просто трудно понять.Переменные undefined в Python

Я продолжаю получать сообщение об ошибке «Lvl» не определено как переменная. Я предполагаю, что это потому, что мне нужно передать переменные из initstatswarrior() в selectclass(). Тем не менее, я не уверен, поскольку прошло много лет с тех пор, как я работал с Python. Любые советы будут оценены.

Traceback (most recent call last): 
    File "C:\Program Files\Notepad++\rpg\start.py", line 48, in <module> 
    selectclass() 
File "C:\Program Files\Notepad++\rpg\start.py", line 17, in selectclass 
    Level 1  """, Lvl, """ 
NameError: name 'Lvl' is not defined 

import os 

def cls(): 
    os.system ("CLS") 

def namecharacter(): 
    cls() 
    playername = input("Character Name: ") 
    print ("You shall be called", playername, "in the realm.\n") 
    input("Press Enter to continue...") 

def selectclass(): 
    cls() 
    print("""Here are your current stats: 

    ----------------- 
    Level 1  """, Lvl, """ 
    ----------------- 
    Hit Points: """, HP, """ 
    Skill Points: """, SP, """ 
    Armor:  """, AC, """ 
    ----------------- 
    Attack:  """, Atk, """ 
    Accuracy:  """, Acc, """ 
    Mind:   """, Mind, """ 
    Evade:  """, Evade, """ 
    Defense:  """, Def, """ 
    Charisma:  """, Cha, """ 
    ----------------- 
    """) 

    input("Press Enter to continue...") 

def initstatswarrior(): 
    HP = 100 
    SP = 40 
    AC = 60 
    Atk = 11 
    Acc = 11 
    Mind = 8 
    Evade = 8 
    Def = 13 
    Cha = 9 


    namecharacter() 
    initstatswarrior() 
    selectclass() 

Спасибо!

+1

'Lvl' используется только один раз в вашем коде, и это ссылка, а не назначение. Как вы думаете, что работает? Кроме того, как я сказал в своем профиле, RPG - это плохой выбор для начинающих программных проектов, потому что вы в конечном итоге делаете много работы, чтобы немного узнать о программировании. – TigerhawkT3

+0

Главной задачей было бы правильно отложить код в вопросе, чтобы мы могли фактически сказать, что происходит. – Keiwan

+0

Отступ был изменен для сообщения. Я попытаюсь отредактировать его. Спасибо –

ответ

0

Вы не указали какие-либо значения для Lvl, чтобы получить сообщение об ошибке. Вы можете сделать это следующим образом:

import os 

def cls(): 
    os.system ("CLS") 

def namecharacter(): 
    cls() 
    playername = input("Character Name: ") 
    print ("You shall be called", playername, "in the realm.\n") 
    input("Press Enter to continue...") 

def selectclass(): 
    cls() 
    Lvl = 1 
    HP = 100 
    SP = 40 
    AC = 60 
    Atk = 11 
    Acc = 11 
    Mind = 8 
    Evade = 8 
    Def = 13 
    Cha = 9 
    print("""Here are your current stats: 

    ----------------- 
    Level   """, Lvl, """ 
    ----------------- 
    Hit Points: """, HP, """ 
    Skill Points: """, SP, """ 
    Armor:  """, AC, """ 
    ----------------- 
    Attack:  """, Atk, """ 
    Accuracy:  """, Acc, """ 
    Mind:   """, Mind, """ 
    Evade:  """, Evade, """ 
    Defense:  """, Def, """ 
    Charisma:  """, Cha, """ 
    ----------------- 
    """) 

    input("Press Enter to continue...") 


namecharacter() 
selectclass() 

Выход:

Character Name: x 
You shall be called x in the realm. 

Press Enter to continue... 
Here are your current stats: 

    ----------------- 
    Level   1 
    ----------------- 
    Hit Points: 100 
    Skill Points: 40 
    Armor:   60 
    ----------------- 
    Attack:  11 
    Accuracy:  11 
    Mind:   8 
    Evade:   8 
    Defense:  13 
    Charisma:  9 
    ----------------- 

Press Enter to continue... 
+0

Я сделаю снимок. Устраняет головную боль дополнительной функции. Спасибо –

+0

Хорошо, дайте мне знать, если это сработает. – Inconnu

+0

Хмм, я получаю те же сообщения об ошибках. Интересно, есть ли проблема с моим синтаксисом –