python - 访问函数内部定义的列表
问题描述
运行代码时,它会按计划要求输入,但未定义列表 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' 未定义
解决方案
正如其他人所指出的,您应该修复缩进,并用您的论点找出一些东西。首先,当你在函数中定义alpha
和bravo
时,每次调用它们都会被重写,我想你不希望发生这种情况。其次,你应该修复缩进。我建议有以下几点:
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
零件,因为它会在不停止执行的情况下运行
推荐阅读
- python-3.x - 不同人的上次访问时间间隔
- sparql - 根据部分名称匹配检索 Wikidata ID 候选者
- mysql - Google CloudSQL 上的全局变量 explicit_defaults_for_timestamp
- python - 它如何将列表中的结果保存到 .txt 文件中?
- c# - WPF C# - DataGrid 单元格中的多个 CheckBox 控件
- c# - Powershell.Create 在调试时返回 null
- javascript - 如何在摩纳哥编辑器中设置多行规则
- python - 连接具有重复行的单元格
- amazon-web-services - 连接到 AWS ClientVPN 时,RDS 实例解析为公共 IP 地址
- docker - 将多个 docker 映像与多阶段构建结合起来不起作用