登录
首页精彩阅读Python的这个特性让我在学习其他语言的时候崩溃了
Python的这个特性让我在学习其他语言的时候崩溃了
2022-07-04
收藏

作者:小K

来源:麦叔编程

Python的这个特性让我在学习其他语言的时候崩溃了

我在学了Python的链式比较法之后,再用别的语言写代码很容易掉坑里。

文末将会告诉大家如何避坑!

什么是链式比较

>>> 2 == 2 == 1 False 

是否有点懵?其实可以这样理解,

>>> 2 == 2 and 2 == 1 False 

上述第一种代码中的用法叫做链式比较。

举个实例

Python

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("肥胖")

看到链式比较的代码了?(正常和过重的那两个判断语句中。) 再看看其他语言,

Python的这个特性让我在学习其他语言的时候崩溃了

JavaScript

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=("肥胖")
  }
}

截取代码片段调试了下,

Python的这个特性让我在学习其他语言的时候崩溃了

是不是还蛮灵异的,bmi=28的情况下,18.5< bmi <=23.9竟然是true。

试下Python的,

Python的这个特性让我在学习其他语言的时候崩溃了

相比之下,Python的链式比较写法是不是更加人性化?

使用链式比较的时候务必考虑运算符的优先级

>>> 2 == 2 > 1 True >>> (2 == 2) > 1 False >>> 2 == (2 > 1) False 

后记

因为我的第一语言是Python,所以在学习其他语言的时候都会用Python进行类比学习。

当我在学习JavaScript的时候,因为JavaScript不支持像Python这样的链式比较法,然后又不报异常,所以一整天debug不出来代码的正确逻辑。

差点当场崩溃!!!

对了你们还知道哪些语言支持链式比较,请在评论区留言,让我以后少走弯路!!!在此先谢过~~~

数据分析咨询请扫描二维码

客服在线
立即咨询