作者:小K
来源:麦叔编程
❝
我在学了Python的链式比较法之后,再用别的语言写代码很容易掉坑里。
文末将会告诉大家如何避坑!
❞
>>> 2 == 2 == 1 False
是否有点懵?其实可以这样理解,
>>> 2 == 2 and 2 == 1 False
❝
上述第一种代码中的用法叫做链式比较。
❞
height = float(input("请输入您的身高,单位为米"))
weight = float(input("请输入您的体重,单位为千克"))
bmi = weight/(height*height) print("您的BMI体重指数为"+str(bmi)) #判断身材是否合理 if bmi < 18.5: print("您的体重过轻") if 18.5 <= bmi < 24.9: print("您的体重正常") if 24.9 <= bmi < 29.9: print("您的体重过重") if bmi >= 29.9: print("肥胖")
看到链式比较的代码了?(正常和过重的那两个判断语句中。) 再看看其他语言,
const cm = document.getElementById("CM"); const kg = document.getElementById("KG"); const btn = document.getElementById("btn"); const taxt = document.getElementById("taxt");
btn.onclick=function (){ if (isNaN(cm.value || kg.value)){
taxt.innerText=("输入错误,请输入数字")
} const bmi = kg.value / cm.value / cm.value * 10000; if (bmi>0 && bmi <= 18.5){
taxt.innerText=("偏瘦")
} if (18.5< bmi&& bmi <=23.9){
taxt.innerText=("正常")
} if (23.9 < bmi && bmi <27.9){
taxt.innerText=("过重")
} if (27.9 <bmi){
taxt.innerText=("肥胖")
}
}
截取代码片段调试了下,
是不是还蛮灵异的,bmi=28的情况下,18.5< bmi <=23.9竟然是true。
试下Python的,
相比之下,Python的链式比较写法是不是更加人性化?
❝
使用链式比较的时候务必考虑运算符的优先级
❞
>>> 2 == 2 > 1 True >>> (2 == 2) > 1 False >>> 2 == (2 > 1) False
因为我的第一语言是Python,所以在学习其他语言的时候都会用Python进行类比学习。
当我在学习JavaScript的时候,因为JavaScript不支持像Python这样的链式比较法,然后又不报异常,所以一整天debug不出来代码的正确逻辑。
差点当场崩溃!!!
对了你们还知道哪些语言支持链式比较,请在评论区留言,让我以后少走弯路!!!在此先谢过~~~
数据分析咨询请扫描二维码