首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数调用函数

函数调用函数
EN

Stack Overflow用户
提问于 2015-11-19 16:14:01
回答 2查看 45关注 0票数 0

这段代码的问题在于,如果您首先输入的不是"bob",那么当您最终输入"bob"时,main函数将输出None。请运行此代码以充分了解我遇到的问题,并为我提供一些答案。

代码语言:javascript
复制
def main(name):
    print name

def x():
    name = raw_input()
    if name == "bob":
        return name
    else:
        print "error"
        x()

main(x())
EN

回答 2

Stack Overflow用户

发布于 2015-11-19 16:38:00

这里不要使用递归。一个简单的while循环就足够了。

代码语言:javascript
复制
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()
票数 3
EN

Stack Overflow用户

发布于 2015-11-19 16:31:36

在"error“的情况下,您不返回值。将x()更改为return x()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33798406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档