Привет, поэтому по какой-то причине "elif Person.gender.get () равен 1, а unit.get () равен 1:" эта строка кода не работает, она говорит, что это неверный синтаксис. Но он выглядит и работает почти так же, как и другие линии elif.
def calculate():
global unit
global Person
global BMR
global result
global result_BMI
response = messagebox.askyesno("Results","Are you sure you are ready?")
if Person.height.get() + Person.weight.get() + Person.age.get() >50:
BMR_label = Label(root, width=30)
BMR_label.grid(row=5, column=0)
BMI_label = Label(root,width=30)
BMI_label.grid(row=6)
if Person.height.get() >1:
if Person.weight.get() > 1:
if Person.age.get() >0:
if response == 1:
if Person.gender.get() is 2 and unit.get() is 2:
result = int(665 + (9.6 * float(Person.weight.get())) + (1.8 *float(Person.height.get())) - (4.7 * float(Person.age.get()))) ##woman metric
result_BMI = int(float(Person.weight.get()) / (float(Person.height.get())**2))
elif Person.gender.get() is 1 and unit.get() is 2:
result = int(66.47 + (13.75 * float(Person.weight.get())) + (5.003 * float(Person.height.get())) - (6.755 *float(Person.age.get()))) ##man metric
result_BMI = int(float(Person.weight.get()) / (float(Person.height.get()*float(Person.height.get()))
elif Person.gender.get() is 1 and unit.get() is 1:
result = int(4.536 * float(Person.weight.get()) + (15.88 * float(Person.height.get())) - (5 *float(Person.age.get())) + 5) ## man us
result_BMI = int(float(Person.weight.get()) / (float(Person.height.get())** 2))
else:
result = int(4.536 * float(Person.weight.get()) + (15.88 * float(Person.height.get())) - (5 * float(Person.age.get())) - 161) ##man us
result_BMI = int(float(Person.weight.get()) / (float(Person.height.get()) ** 2))
BMR_label.configure(text="BMR = "+str(result.__getnewargs__()) + " kcal")
BMI_label.configure(text="BMI = "+str(result_BMI.__getnewargs__()) + " kg/m2")
else:
return
else:
messagebox.showerror("Error", "Invalid age!")
else:
messagebox.showerror("Error", "Invalid weight!")
else:
messagebox.showerror("Error", "Invalid height!")
else:
messagebox.showerror("Error","Invalid input!")