使用Python中的函数验证输入

时间:2016-01-27 09:11:22

标签: python python-2.7

我是Python新手,我主要是搞乱。我正在尝试整合一个验证用户输入的函数(在我的情况下,检查用户是否写了James或Peter。这可能是一个非常新手的问题,但我只是想知道我的代码是否是一个好方法完成这个功能。 谢谢你的帮助。

namelist = "Peter", "James"

def nameinput():
    global name
    name = raw_input("Write a name. ")

def checkname(x):
    while name not in namelist:
        print "Try again"
        nameinput()
    else:
        print "Good,", name

checkname(nameinput())

if name == "Peter":
    print "This is a text for Peter"
elif name == "James":
    print "This is a text for James"

2 个答案:

答案 0 :(得分:1)

没有;这里没有理由使用全局变量。将数据传递给需要它的函数。

def nameinput():
    return raw_input("Write a name. ")

def checkname(name):
    namelist = ["Peter", "James"]
    while name not in namelist:
        print "Try again"
        name = nameinput()
    else:
        print "Good,", name
    return name

name = checkname(nameinput())

答案 1 :(得分:0)

使用全局变量通常是不受欢迎的(如果你不总是知道自己在做什么,它真的可以做蠢事),所以不要早点开始这样做。

您可以通过从nameinput返回名称来轻松避免这种情况。

此外,您已拥有名单。最后执行以下操作:

if name in namelist:
    print("This is a text for " + name)