我是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"
答案 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)