python - 有没有办法从 def 函数获取输入?
问题描述
我想知道是否有可能从 def 函数中获取唯一的输入。
def choose():
while True:
try:
pick = float(input("Enter any number that isn't 0 "))
if pick != 0:
break
else:
pick = float(input("Try again! Enter any number that isn't 0 "))
except ValueError:
print("Sorry, I didn't understand that.")
continue
else:
break
choose()
我会尽量说清楚。您可以从其他地方获取pick
输入choose()
并将其存储在其他地方吗?说像当你完成输入你想要的数字。
你能跑吗:
print(pick + 15)
或者你根本无法接受输入choose()
。我只是想知道。因为如果是这样,我什至不知道该怎么做。所以我会很感激你的建议。
解决方案
您不能从函数外部访问局部变量。该函数应该返回该值,您可以将其分配给另一个变量。
def choose():
while True:
try:
pick = float(input("Enter any number that isn't 0 "))
if pick != 0:
return pick
else:
print("Try again. The number has to be non-zero!")
except ValueError:
print("Sorry, I didn't understand that.")
choice = choose()
print(choice + 15)
您也不应该在else:
块中要求输入,因为当循环重复时它会再次询问。只需在此处打印错误消息,无需读取输入。
您不需要该continue
语句,因为循环会自动继续,除非重复条件变为 false(这永远不会发生while True:
)或者您执行break
orreturn
语句以离开循环。
推荐阅读
- visual-studio-code - 使用 VS Code 将 Blazor 服务器端应用程序部署到 Azure
- javascript - 如何在滚动时修复弹跳部分/内容?
- c# - 在 UWP 中将音频文件转换为 8000Hz 16Bit Mono Wav
- ios - 找不到“DDLog.h”文件
- c - 在 C 中将 4 位密钥转换为 8 位密钥
- php - 如何将子菜单添加到自定义帖子类型菜单的顶部?
- wordpress - 请问我如何解释下面的代码?
- python - 为什么 Jupyter Notebook 不会加载模块“mlwpy”
- r - 在单词和数字之间替换逗号+空格
- java - 使用 Java 快速排序队列