python - 在同一个函数中调用函数时,无法从函数返回变量
问题描述
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”
解决方案
@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()
推荐阅读
- ruby-on-rails - 未知验证器:Ruby on Rails 上的“InValidator”
- firebase - 删除按钮颤动 Firestore
- angular - 为什么我的 Mongoose 控制器没有被调用?
- reactjs - 在我的 Redux 设置中没有调用 Reducer
- c++ - 转换为右值后,线程参数必须是可调用的
- javascript - 防止 10 分钟邮件响起(网页)
- python - 如何使用 ctypes 在 Python 中发送 char* 类型参数?
- python - 在 Django 中以 html 模式加载动态数据
- javascript - Node.js 获取字符串中所有出现的子字符串
- pine-script - 是否有自动“价格与柱线比率”计算的公式?