我需要定义一个函数,该函数将从用户输入收集的两个整数相乘。说明说“在函数内”收集用户输入,但这样做会导致错误:
NameError: name 'num_1' is not defined.
这是我的尝试:
def multiply(num_1, num_2):
num_1 = input("enter a whole number:")
num_2 = input("enter another whole number:")
result = int(num_1)*int(num_2)
return(num_1 + " * " + num_2 + " = " + str(result))
multiply(num_1, num_2)
更改代码以便在调用函数时收集输入使其通过:
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: ")))
但我想知道是否有可能在函数中收集输入作为指示。
答案 0 :(得分:0)
由于输入是由用户定义的,因此该函数没有输入参数。使用:
def multiply():
num_1 = input("enter a whole number:")
num_2 = input("enter another whole number:")
result = int(num_1)*int(num_2)
return(str(num_1) + " * " + str(num_2) + " = " + str(result))
multiply()
<强>结果:
'1 * 2 = 2'
答案 1 :(得分:0)
由于您在函数内部收集值,因此无需将它们作为参数传递。
def multiply_two_numbers():
x = input("Enter a number: ")
y = input("Enter another number: ")
return x*y
>>> multiply_two_numbers()
Enter a number: 10
Enter another number: 12.5
125.0
答案 2 :(得分:0)
是的,可以从函数获取输入。您正在从用户那里获得正确的输入,但是,您似乎遇到了函数范围问题。
您获得的NameError问题是由于变量的范围。您已在函数中对它们进行了多次定义,并且您试图在函数范围之外访问它们。 Python函数作用域意味着您只能在函数下方的缩进空间中访问这些变量。
例如:如果你有:
multiply():
num_1 = 2
print(num1)
没有名称错误,因为您在函数范围内。但是,如果你做过这样的事情:
multiply():
num_1 = 2
print(num1)
您将收到NameError:未定义num_1