gpt4 book ai didi

python - 为什么我在编辑全局变量时会出现类型错误?

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:59 26 4
gpt4 key购买 nike

我正在创建一个 easygui/python 计算器数学程序,但我不断收到此错误

Traceback (most recent call last):
File "C:\Python27\Scripts\MathHelper.py", line 83, in <module>
MathType()
TypeError: 'str' object is not callable

我不明白为什么会这样。我相信这是我尝试调用和更改的全局变量,但我不知道如何停止错误。我知道我的代码现在有点乱,我正在尝试进行概念验证。

#MathType == what kind of math to compute. IE. Subtraction or addition
#Selection == Yes or no
math = 1
MathType = "Addition"
loop = 1
import easygui

def start():
print("startMessage")
MathType = easygui.msgbox(msg="Hello and welcome to my Math Helper.",
title = "Welcome")
startMessage = "0"
#End of start
#
#
#

def MathType():
global MathType
print("Math Type Gathered")
MathType = easygui.buttonbox("Select the type of Math you would like to compute:",
title = "Math Selection",
choices = ["Addition", "Subtraction", "Shut Down"] )
#End of MathType
#
#
#

def Addition():
num1 = easygui.enterbox(msg = "Please enter the first Number.",
title = "Addition")
#print(num1)
num2 = easygui.enterbox(msg = "Please enter the second number. "+num1+" + ___ = ___",
title = "Addition")
#print(num2)
easygui.msgbox("Here is your equation: "+num1+" + "+num2+" = ___ ",
title = "Equation")
NUM1 = int(num1)
NUM2 = int(num2)
numFinal = (NUM1 + NUM2)
NUM3 = str(numFinal)

easygui.msgbox(msg="Your answer is: "+NUM3+"",
title="Final")
#print(numFinal)
#End of Addition
#
#

def Subtraction():
num1 = easygui.enterbox(msg = "Please enter the first Number.",
title = "Subtraction")
#print(num1)
num2 = easygui.enterbox(msg = "Please enter the second number. "+num1+" - ___ = ___",
title = "Subtraction")
#print(num2)
easygui.msgbox("Here is your equation: "+num1+" - "+num2+" = ___ ",
title = "Equation")
NUM1 = int(num1)
NUM2 = int(num2)
numFinal = (NUM1 - NUM2)
NUM3 = numFinal

easygui.msgbox(msg="Your answer is: "+NUM3+"",
title="Final")
#print(numFinal)
#End of Subtraction
#
#

def MathFinder():
if MathType == "Addition":
print("Addition")
Addition()
elif MathType == "Subtraction":
print("Subtraction")
Subtraction()
elif MathType == "Shut Down":
exit()

start()
while loop == 1:
MathType()
MathFinder()

最佳答案

在第 4 行,您有 MathType = "Addition"
在第 18 行,您有 def MathType():

错误告诉你它不能调用一个字符串。
MathType() 实际上是 MathType = "Addition",它是一个字符串而不是一个函数。

请尽量避免为您的函数、变量等使用相同的名称。

关于python - 为什么我在编辑全局变量时会出现类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com