调用def python3.x中定义的变量时出现名称错误

2024-04-26 19:01:53 发布

您现在位置:Python中文网/ 问答频道 /正文

这个代码允许用户输入一个名字-但是如果他们输入数字,那么它将显示一个错误('No numbers please!')并提示他们再次输入姓名。此过程将在循环中继续,直到用户输入不带数字字符的字符串。在

但是,如果用户输入纯字母字符串-

if not any(char.isdigit() for char in name):
    break

然后循环将被中断,输入的结果将变成一个列表,供以后在程序中使用。以下是错误的来源: 当循环中断时,我得到以下错误:

^{pr2}$

如下所示,我已经将变量名定义为naming()定义中输入的结果。我做错什么了?谢谢你的帮助!在

def naming():
name = input ("please input your name: ")
while any(char.isdigit() for char in name):
    print ("\nNo numbers please!\n")
    naming()

    if not any(char.isdigit() for char in name):
        break


naming()


#making the name into a list
namelist = list(name.lower().strip(" "))

Tags: 字符串用户nameinforif错误not
1条回答
网友
1楼 · 发布于 2024-04-26 19:01:53

name的作用域仅限于函数,这就是为什么不能在namelist的全局范围内访问它。在

解决此问题的一种方法是从函数返回值:

def get_name():
    name = input ("please input your name: ")
    while any(char.isdigit() for char in name):
        print ("\nNo numbers please!\n")
        name = input ("please input your name: ")
    return name

name = get_name()
namelist = list(name.lower().strip(" "))

相关问题 更多 >