尝试引用功能参数时出现名称错误

时间:2018-10-26 16:05:58

标签: python

当我尝试运行下面的代码时,出现名称错误

def multiply(x,y):
  x = int(input("Enter a whole number: "))
  y = int(input("Enter a whole number: "))
  return x * y
print(x, "*", y, "=", multiply())

输出:

NameError                                 Traceback (most recent call last)
<ipython-input-1-611728e87d5f> in <module>()
      3   y = int(input("Enter a whole number: "))
      4   return x * y
----> 5 print(x, "*", y, "=", multiply())

NameError: name 'x' is not defined

2 个答案:

答案 0 :(得分:0)

尝试

def multiply(): 
    x = int(input("Enter a whole number: ")) 
    y = int(input("Enter a whole number: ")) 

    return(str(x)+ "*"+ str(y)+ "="+str(x*y))


print(multiply())

答案 1 :(得分:0)

问题在于xy是函数multiply()中的变量。它们不存在于函数之外。

编写一个进行一些处理并打印和读取的函数通常不是一个好主意。如果函数打印或读取,则只能执行此操作。

但是,如果您确实希望函数读取两个变量并返回变量及其乘积,则可以执行以下操作:

def read_and_multiply():
  n1 = int(input("Enter a whole number: "))
  n2 = int(input("Enter a whole number: "))
  m = n1 * n2
  return n1, n2, m

x, y, m = read_and_multiply()
print(x, "*", y, "=", m)