首页 > 解决方案 > 访问函数内部定义的列表

问题描述

运行代码时,它会按计划要求输入,但未定义列表 alpha。

首先输入没有读取,所以我更改了缩进,但是没有解决定义问题。

def newclassification1(alpha,bravo):
        alpha = ["Jacob", "Jane", "Jim"]
        bravo = ["Male", "Female", "Unknown"]

    name = input("What is the persons name?")
    if name in alpha:
        while True:
            print(bravo[alpha.index(name)])
    else:
        print("The persons name is not in the register.")

错误信息:

Traceback(最近一次调用最后一次):文件“”,第 7 行,在 NameError:名称 'alpha' 未定义

标签: pythonpython-3.x

解决方案


正如其他人所指出的,您应该修复缩进,并用您的论点找出一些东西。首先,当你在函数中定义alphabravo时,每次调用它们都会被重写,我想你不希望发生这种情况。其次,你应该修复缩进。我建议有以下几点:

def newclassification1(alpha=["Jacob", "Jane", "Jim"],bravo=["Male", "Female", "Unknown"]):
        name = input("What is the persons name?")
        if name in alpha:
            print(bravo[alpha.index(name)])
        else:
            print("The persons name is not in the register.")

这样,默认情况下,您将使用您的alpha=["Jacob", "Jane", "Jim"]bravo=["Male", "Female", "Unknown"]但稍后在调用该函数时可以轻松地将其更改为您想要的任何内容。

此外,您不需要while True零件,因为它会在不停止执行的情况下运行


推荐阅读