礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

int(sqr(n))为什么-int s

2025-11-20 05:22:51  

int(sqr(n))为什么-int s

优质解答

哎,这两个写法到底差在哪呢?首先看int(sqr(n)),sqr(n)就是算n的平方,比如n等于3的话,sqr(3)等于9,然后int(9)还是9。而-int s这个写法,负号和乘号优先级不同,Python会先算int s,但int是类型名不能直接乘,比如写成int5就会报错。所以前者是算平方再转整数,后者是语法错误。

为啥会有这种区别呢?因为Python的运算符优先级有讲究,负号属于一元运算符,比乘法优先级高。所以-int s会被拆成-(int s),但int不能和变量s相乘。比如当s是5的时候,int5就会报错类型错误。而int(sqr(n))是先算平方再转整数,比如n=3.5的话,sqr(3.5)=12.25,int(12.25)=12。所以前者是安全计算,后者是语法陷阱。特别注意,如果写成-ints,Python会提示"int"是类型名不能参与乘法运算,而int(sqr(n))永远能得到整数结果。

本题链接:

Python语法int函数乘法优先级