首页 > 解决方案 > python中的名称错误,同时在另一个函数变量中调用其他函数,已经在被调用但显示未定义的函数中定义

问题描述

我刚开始使用 python 我编写了以下代码,但出现名称错误 有人可以帮忙告诉我问题是什么吗?

print("A is addition \nB is subtraction \nC is multiplication \nD is division")

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

def funcA():
 number() 
 z=int(x)+int(y)
 print(str(z))

def funcB():
 number()
 z=x-y
 print(z)

def funcC():
 number() 
 z=x*y
 print(z)

choice=input("Enter desired option: " )

if choice == 'A':
 funcA()
elif choice=='B':
 funcB()
elif choice=='C':
 funcC()
else:
 print ("INVALID") 

标签: python

解决方案


问题是您在函数的范围内定义了变量x,因此,它在 , 的范围内不可用,并且yinputfuncAfuncBfuncC

您可以从您的函数返回值number,并在不同的函数中定义它们

请注意,我在函数中更改了 and 并将其重命名为xand ,以明确这些变量,一旦函数执行,它们就会超出范围。ynumberinput1input2number

尝试:

print("A is addition \nB is subtraction \nC is multiplication \nD is division")

def number():
    input1 = int(input("Enter a number: "))
    input2 = int(input("Enter a number again: "))
    return input1, input2

def funcA():
    x, y = number()
    z = int(x) + int(y)
    print(str(z))

def funcB():
    x, y = number()
    z = x-y
    print(z)

def funcC():
    x, y = number()
    z = x*y
    print(z)

choice=input("Enter desired option: " )

if choice == 'A':
    funcA()
elif choice=='B':
    funcB()
elif choice=='C':
    funcC()
else:
    print("INVALID")

推荐阅读