我需要定义一个函数,它将从用户输入中收集的两个整数相乘。说明说要在“函数内”收集用户输入,但这样做会导致错误:
NameError: name 'num_1' is not defined.
我的尝试是:
^{pr2}$更改代码以便在调用函数时收集输入使其通过:
def multiply(num_1, num_2):
result = int(num_1)*int(num_2)
return(num_1 + " * " + num_2 + " = " + str(result))
print(multiply(input("enter a whole number: "), input("enter another whole number: ")))
但我想知道是否有可能按照指示在函数中收集输入。在
因为您是在函数内部收集值,所以不需要将它们作为参数传递。在
因为输入是由用户定义的,所以函数没有输入参数。使用:
结果:
^{pr2}$是的,可以从函数获取输入。您从用户处获得的输入是正确的,但是,看起来您在函数范围界定方面遇到了问题。在
您得到的NameError问题是由于变量的范围造成的。您已经在函数multiply中定义了它们,并且试图在函数范围之外访问它们。Python函数作用域意味着您只能访问函数下方缩进空间中的这些变量。在
例如:如果您有:
不会出现名称错误,因为您在函数的作用域内。但是,如果你做过这样的事情:
^{pr2}$您将收到名称错误:num_1未定义
相关问题 更多 >
编程相关推荐