今天收到一位小伙伴的问题:为什么2**2**3是256不是64呢?一个星号 * 在python的运算符中表示乘法
结果会打印6,2×3=6这个简单。 ** 在Python的运算符中代表幂运算
结果会打印8,2×2×2=8。 那么问题来了 2**2**3 等于多少呢?
结果是256。 我们都知道的运算优先级是,先乘除后加减,同级从左往右。 (1)(2**2**3)它的运算优先级是什么样子的呢? 从左往右是这样的((2**2)**3) 2×2=4,4×4×4=64,咿呀和python的运算结果不同,奇了怪了。 (2)从右往左?(2**(2**3)) 2×2×2=8,2×2×2×2×2×2×2×2=256 运算结果对上了。 但是怎么解释呢? 我的理解供大家参考 在数学里普通运算都是左右维度的,例如:3+4×6、8+7÷4×6、9÷(3+4)-2 但是幂运算在数学里其实是上下维度的,例如: 幂运算计算的优先级是先上后下,在Python中把这样上下的维度写成左右维度。 于是上面的部分就写到了右边。 所以,你品,你细品。 2**2**3 = (2**2)**3 = 加入组织收获更多 持续发布趣味案例、体系课程、学习资料、图书分享 【趣味编程星球】聚焦一群编程创客爱好者,计划用三年时间创作千余个的趣味项目案例、十几套系统课程涵盖积木、KUBO、图形化、Scratch、Python、C++、Micro:Bit、Arduino、appinventor等编程创客类。 长按扫码加入组织 为鼓励创作者,星球收取一定费用 随内容增长 从188元/年逐渐增加到666/年封顶 如果你觉得分享有价值,记得点击关注+点赞+在看+收藏,这样找到我更容易~~~ 加入社群共读书籍 输出是最好的输入 荣获:“2020年度国际人工智能教育行业杰出贡献人物奖”。 |
|