使用 Python GUI 添加整数时遇到问题

过去 4 个月我一直在学习 Python,目前我正在学习 GUI 应用程序。我在使用 CheckBox 选择整数后尝试添加整数时遇到问题。整数确实加起来了,但我得到了这些疯狂的结果。


这是我的代码:


def Calculate(self):

        self.message = "Your total charge = $"


        chargeTotal = 0


        if self.checkBoxVar1.get() == 1:

            chargeTotal += 30

            self.message +=  str(chargeTotal)


        if self.checkBoxVar2.get() == 1:

            chargeTotal += 20

            self.message += str(chargeTotal)


        if self.checkBoxVar3.get() == 1:

            chargeTotal +=  40

            self.message += str(chargeTotal)


        if self.checkBoxVar4.get() == 1:

            chargeTotal +=  100

            self.message += str(chargeTotal)


        if self.checkBoxVar5.get() == 1:

            chargeTotal +=  35

            self.message += str(chargeTotal)


        if self.checkBoxVar6.get() == 1:

            chargeTotal +=  200

            self.message += str(chargeTotal)


        if self.checkBoxVar7.get() == 1:

            chargeTotal += 20

            self.message += str(chargeTotal)


        tkinter.messagebox.showinfo("Total Charges", self.message)

这是我不断得到的疯狂结果:https : //imgur.com/a/qwIpTrn


我知道它必须是一个简单的解决方案,但我对 Python 还是很陌生,似乎无法弄清楚


白猪掌柜的
浏览 139回答 2
2回答

犯罪嫌疑人X

您正在做的是将转换为字符串的数字连接到 self.message 的每个 if 语句中。例如。如果您输入前两个 if 语句,您首先会得到“您的总费用 = 30 美元”,然后是“您的总费用 = 3020 美元”相反,您应该在最后将 chargeTotal 添加到您的 self.message 中,仅一次:def Calculate(self):    self.message = "Your total charge = $"    chargeTotal = 0    if self.checkBoxVar1.get() == 1:        chargeTotal += 30    if self.checkBoxVar2.get() == 1:        chargeTotal += 20    if self.checkBoxVar3.get() == 1:        chargeTotal += 40    if self.checkBoxVar4.get() == 1:        chargeTotal += 100    if self.checkBoxVar5.get() == 1:        chargeTotal += 35    if self.checkBoxVar6.get() == 1:        chargeTotal += 200    if self.checkBoxVar7.get() == 1:        chargeTotal += 20    self.message += str(chargeTotal)    tkinter.messagebox.showinfo("Total Charges", self.message)

汪汪一只猫

您需要删除self.message += str(chargeTotal)每个if语句中的 ,然后将其放在下面的代码中。希望它有帮助。def Calculate(self):    self.message = "Your total charge = $"    chargeTotal = 0    if self.checkBoxVar1.get() == 1:        chargeTotal += 30    if self.checkBoxVar2.get() == 1:        chargeTotal += 20    if self.checkBoxVar3.get() == 1:        chargeTotal +=  40    if self.checkBoxVar4.get() == 1:        chargeTotal +=  100    if self.checkBoxVar5.get() == 1:        chargeTotal +=  35    if self.checkBoxVar6.get() == 1:        chargeTotal +=  200    if self.checkBoxVar7.get() == 1:        chargeTotal += 20    self.message += str(chargeTotal)    tkinter.messagebox.showinfo("Total Charges", self.message)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python