if嵌套最后一个if满足条件却运行self的

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, '您的心率过快,会导致心脏做功增加,造成心脏肥厚,心力衰竭等严重问题,建议您适当增加运动,规律作息,减少熬夜、限盐、戒烟、戒酒、少动怒,保持心态平和')

img

其实应该是

True,'您的身体健康'

需要改成float类型比较,例如
if float(li) < float(be['li'])

你全是字符串,要转成数字比较

两个问题:
1、你提供的数据都是字符串,直接比较本身就不合理,需要转为数字再比较
2、你的嵌套if会导致函数没有返回值

因为所有参数皆为字符串,会按字符串规则比较大小。先比较第一位,相同则第二位....
你这里“70” <= "100",欣慰7 > 1所以走else