字符串对象不可调用,GUI BMI Python计算器

字符串对象不可调用,GUI BMI Python计算器,python,tkinter,Python,Tkinter,我需要为课堂完成的项目提供以下代码帮助。我被最后一部分难住了。我犯了一个错误。下面是我的全部代码: 有人能帮忙吗?为什么在使用该按钮时会出现此错误?问题是,您将category设置为带有self.category='you is Normal'的字符串,然后多次调用它。这就是信息。下面是该函数的更正确版本 def calcBMI(self): #get the weight and height values. weight = int(self.weight_entry.get(

我需要为课堂完成的项目提供以下代码帮助。我被最后一部分难住了。我犯了一个错误。下面是我的全部代码:


有人能帮忙吗?为什么在使用该按钮时会出现此错误?

问题是,您将category设置为带有
self.category='you is Normal'
的字符串,然后多次调用它。这就是信息。下面是该函数的更正确版本

def calcBMI(self):
   #get the weight and height values.
    weight = int(self.weight_entry.get())
    height = int(self.height_entry.get())

    #BMI calc
    bmi = float((weight * 703)/(height * height))

    if bmi >= 30:
        self.category ='Your BMI describes you as Obese.'
    elif bmi <30 and bmi >=25:
        self.category = 'Your BMI describes you as Overweight.'
    elif bmi <25 and bmi >=18.5:
        self.category = 'Your BMI describes you as Normal.'
    else:
        self.category = 'Your BMI describes you as Underweight.'

     # Display the results
    tkinter.messagebox.showinfo('BMI Calulation','Your BMI is: '+ 
    format(bmi,'.1f') + self.category)
def calcBMI(自身):
#获取重量和高度值。
weight=int(self.weight\u entry.get())
height=int(self.height\u entry.get())
#体重指数计算
体重指数=漂浮物((体重*703)/(身高*身高))
如果体重指数>=30:
self.category='您的体重指数将您描述为肥胖。'
elif bmi=25:
self.category='你的体重指数将你描述为超重。'
elif bmi=18.5:
self.category='你的体重指数说明你是正常的。'
其他:
self.category='您的体重指数将您描述为体重不足。'
#显示结果
tkinter.messagebox.showinfo('BMI Calulation','您的BMI为:'+
格式(bmi,'.1f')+自我分类)

我想,您需要为字段赋值,而不是调用它

if bmi >= 30:
    self.category = 'Your BMI describes you as Obese.'
elif bmi <30 and bmi >=25:
    self.category = 'Your BMI describes you as Overweight.'
elif bmi <25 and bmi >=18.5:
    self.category = 'Your BMI describes you as Normal.'
else:
    self.category = 'Your BMI describes you as Underweight.'
如果体重指数>=30:
self.category='你的体重指数将你描述为肥胖。'
elif bmi=25:
self.category='你的体重指数将你描述为超重。'
elif bmi=18.5:
self.category='你的体重指数说明你是正常的。'
其他:
self.category='您的体重指数将您描述为体重不足。'

请注意上面代码段中的赋值符号。

使用按钮
{}
正确格式化代码
self.category
是字符串变量(
self.category=“text”
),为什么要将其用作函数-
self.category(“text”)
def calcBMI(self):
   #get the weight and height values.
    weight = int(self.weight_entry.get())
    height = int(self.height_entry.get())

    #BMI calc
    bmi = float((weight * 703)/(height * height))

    if bmi >= 30:
        self.category ='Your BMI describes you as Obese.'
    elif bmi <30 and bmi >=25:
        self.category = 'Your BMI describes you as Overweight.'
    elif bmi <25 and bmi >=18.5:
        self.category = 'Your BMI describes you as Normal.'
    else:
        self.category = 'Your BMI describes you as Underweight.'

     # Display the results
    tkinter.messagebox.showinfo('BMI Calulation','Your BMI is: '+ 
    format(bmi,'.1f') + self.category)
if bmi >= 30:
    self.category = 'Your BMI describes you as Obese.'
elif bmi <30 and bmi >=25:
    self.category = 'Your BMI describes you as Overweight.'
elif bmi <25 and bmi >=18.5:
    self.category = 'Your BMI describes you as Normal.'
else:
    self.category = 'Your BMI describes you as Underweight.'