是否可以在函数体中使用 input() ?

is it possible to use input() in the body of a function?

我的学生想在函数内部使用input()。 这是一个示例学生代码,这是一个简单的计算器:

def calc():
    while(True):
        req=input(": ")
        if req=="":
            break
        print(req+"="+str(eval(req)))

calc()

我一直认为这不是完成的。还是我错了? 请帮我弄清楚。如果没有这样做,请解释原因

PS.we不说return,只说在函数体中使用输入

是的,您可以将 input 调用放在函数体内。它使你的功能impure, which is not ideal from a functional programming观点,但不是每个程序都必须是功能性的。

如其他评论所述,在函数内部使用 input 没有问题。

注意: 其他人提到函数式编程,但如果你在教 Python 尤其是 input,我非常怀疑这是否会产生任何影响在你的课程中,因为 Python 是 OOP 的核心,函数式编程可能会让你的学生感到困惑。