首页 > 解决方案 > 有没有办法从 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()。我只是想知道。因为如果是这样,我什至不知道该怎么做。所以我会很感激你的建议。

标签: python

解决方案


您不能从函数外部访问局部变量。该函数应该返回该值,您可以将其分配给另一个变量。

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:)或者您执行breakorreturn语句以离开循环。


推荐阅读