以后是否可以在if语句中使用变量?

时间:2019-06-23 12:25:44

标签: python python-3.x variables

我刚开始学习python,为了锻炼,我做了一种文字游戏。 在一部分中有一个if语句,其中定义了一个变量,然后它进一步将您发送给您。我想稍后再使用相同的变量,但随后它表示未定义。我该怎么解决?

我使用python 3.7.3。我尝试了不同的括号,看看是否使用了错误的括号,但这没用。

answer_A = ["a"]
answer_B = ["b"]


def begin(): 
    print("type a or b")
    choice = input(">>> ")
    if choice in answer_A:
       yes = ("a")
       option_a()
    else:
       yes = ("b")
       option_b()

def option_a():
    print("This is", yes)

def option_b():
    print("This is", yes)

begin()

我希望,例如,如果您输入“ a”作为输入,则得到answer_A,并且它将“ yes”注册为“ a”。这样它将转到option_a()并显示:“ This is a”。

相反,我得到的答复是,它接受了您的答案,然后转到option_a,但随后出现一个错误,即未定义“是”。

({NameError: name 'yes' is not defined

1 个答案:

答案 0 :(得分:0)

您可以在方法option_a()option_b()中添加参数,以使它们看起来像option_a(args)option_b(args)。然后,您可以使用print("This is", args)打印它们。 这样您的程序将如下所示:

answer_A = ["a"]
answer_B = ["b"]


def begin(): 
    print("type a or b")
    choice = input(">>> ")
    if choice in answer_A:
       yes = ("a")
       option_a(yes)
    else:
       yes = ("b")
       option_b(yes)

def option_a(param):
    print("This is", param)

def option_b(param):
    print("This is", param)

begin()