为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白猪掌柜的 2021-08-24 18:35:38
过去 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 还是很陌生,似乎无法弄清楚
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您正在做的是将转换为字符串的数字连接到 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)


查看完整回答
反对 回复 2021-08-24
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您需要删除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)


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信