分享

Python幂运算优先级-为什么2**2**3是256不是64呢?(很有意思)

 凤飞图书 2023-03-03 发布于浙江

今天收到一位小伙伴的问题:为什么2**2**3是256不是64呢?

一个星号 * 在python的运算符中表示乘法

print(2*3)

结果会打印6,2×3=6这个简单。

** 在Python的运算符中代表幂运算

print(2**3)

结果会打印8,2×2×2=8。

那么问题来了 2**2**3 等于多少呢?

print(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 = 

加入组织收获更多

持续发布趣味案例、体系课程、学习资料、图书分享
加入知识星球收获详细讲解、下载源代码、下载PPT 、下载课程··· ···

【趣味编程星球】聚焦一群编程创客爱好者,计划用三年时间创作千余个的趣味项目案例、十几套系统课程涵盖积木、KUBO、图形化、Scratch、Python、C++、Micro:Bit、Arduino、appinventor等编程创客类。

长按扫码加入组织

为鼓励创作者,星球收取一定费用

随内容增长

188元/年逐渐增加到666/年封顶

如果你觉得分享有价值,记得点击关注+点赞+在看+收藏,这样找到我更容易~~~

加入社群共读书籍

输出是最好的输入

我是凤飞,三岁孩子的爸爸,专注于儿童思维培养。
荣获:“2020年度国际人工智能教育行业杰出贡献人物奖”。
出版:《轻松玩转Scratch编程》《Python真好玩,教孩子学编程》...

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多