首页 > 解决方案 > 在同一个函数中调用函数时,无法从函数返回变量

问题描述

def m():
    m1 = input()
    m1.lower()
    if m1 in ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']:
        return m1
    else:
        m()
f= m()

在这里,只要执行 if 语句, f 的值就会更新,而当 else 执行时,它会调用函数本身。因此,当第二次执行 if 时(在 else 之后), f 的值不会更新并给出“none”

标签: pythonpython-3.x

解决方案


@Olvin Rought 是正确的。您需要return m()else. 如果您不添加返回,则代码将递归运行,但一旦进入 else 语句,实际上不会返回任何内容

def m():
    m1 = input()
    m1.lower()
    if m1 in ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']:
        return m1
    else:
        return m()
f= m()

推荐阅读