这段代码的问题在于,如果您首先输入的不是"bob",那么当您最终输入"bob"时,main函数将输出None。请运行此代码以充分了解我遇到的问题,并为我提供一些答案。
def main(name):
print name
def x():
name = raw_input()
if name == "bob":
return name
else:
print "error"
x()
main(x())发布于 2015-11-19 16:38:00
这里不要使用递归。一个简单的while循环就足够了。
def get_name_must_be_bob():
while True:
name = raw_input("Enter name: ")
if name.lower() == "bob": # "Bob", "BOB" also work...
return name
# `else` is not necessary, because the body of the `if` ended in `return`
# (we can only get here if name is not Bob)
print "Are you sure you're not Bob? Try again."
def main():
name = get_name_must_be_bob()
print "Hello, " + name
if __name__ == '__main__':
main()发布于 2015-11-19 16:31:36
在"error“的情况下,您不返回值。将x()更改为return x()
https://stackoverflow.com/questions/33798406
复制相似问题