python - 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")
解决方案
问题是您在函数的范围内定义了变量x
,因此,它在 , 的范围内不可用,并且y
input
funcA
funcB
funcC
您可以从您的函数返回值number
,并在不同的函数中定义它们
请注意,我在函数中更改了 and 并将其重命名为x
and ,以明确这些变量,一旦函数执行,它们就会超出范围。y
number
input1
input2
number
尝试:
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")
推荐阅读
- python - 使用预训练的 BERT 嵌入作为带有 tensorflow.keras 的 CNN 的输入会导致 ValueError
- amazon-web-services - AWS Comprehend 是否对图像进行分类?
- ruby-on-rails - 如何将 FontAwesome 与 simple_form 一起使用
- c# - 如何将对象绑定到 c# windows 窗体中的标签
- python - 你如何在python中对二维列表进行排序?
- r - acf 函数产生稍微不准确的结果
- swift - ARKit – 如何使用 LiDAR 从 iPhone/iPad 导出 OBJ?
- reactjs - React webpack 编译时异常
- elixir - Elixir/Phoenix - 如何将变量值添加到片段
- docker - 将 ssl 证书添加到 dockerized 应用程序会中断 api 调用