def all(self, li, pre1, pre2, su, he):
for be in self.sj:
if li < be['li']:
if pre1 < be['pre1']:
if pre2 < be['pre2']:
if su <= be['su']:
if he <= be['he']:
return True, '您的身体健康'
duration = 1000 # millisecond
freq = 440 # Hz
else:
duration = 1000 # millisecond
freq = 440 # Hz
winsound.Beep(freq, duration)
return True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和'
if name == 'main':
print(db.all('1.3', '70', '120', '6', '70'))
#这是be里的数据
[{"li": "1.7", "pre1": "90","pre2": "140","su": "7","he": "100"}]
运行出来是这样
(True, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和')
其实应该是
True,'您的身体健康'
需要改成float类型比较,例如if float(li) < float(be['li'])
你全是字符串,要转成数字比较
两个问题:
1、你提供的数据都是字符串,直接比较本身就不合理,需要转为数字再比较
2、你的嵌套if会导致函数没有返回值
因为所有参数皆为字符串,会按字符串规则比较大小。先比较第一位,相同则第二位....
你这里“70” <= "100",欣慰7 > 1所以走else