Python与Powers Math

43

我一直在学习Python,但有点困惑。在线教程告诉我,在尝试将一个数乘方时要使用运算符 **,而不是使用 ^。例如:

print 8^3

代码输出结果为11。但我希望得到的是 print 8**3,它会给出正确答案512。但为什么呢?

有人能解释一下吗?为什么8^3并不等于正确答案512?在什么情况下会得到11(即8^3的结果)?

我查过stackoverflow,但只找到了关于除法取模的信息。


3
^ 是异或运算符,** 表示乘方。搜索 XOR(可以使用谷歌或 Stack Overflow)以了解其含义。 - nhahtdh
哇,非常感谢。我以为我做错了什么(实际上,我可能是因为错误地假设^在Python中表示乘方而出错了)。感谢你的澄清。 - Interrupt
@user1527653 -- 别忘了接受一个答案(点击答案旁边的小复选框)。这有助于其他遇到相同问题的人立即知道哪个发布的解决方案对你最有用。 - mgilson
3个回答

84

16

这些符号代表不同的运算符。

^ 代表位异或(XOR

每个输出位的数值与 y 中对应位数值为0的相同,如果 y 对应位数值为1,则该输出位数值为x中对应位数值的补码。

** 代表幂运算符。这只是语言结构的一部分。


值得一提的是,8.^3会引发异常,因为位运算只能用于整数。 - mgilson
哇,我以前从未使用过位运算符(毕竟我只是在学习这门语言),太有趣了!谢谢。 - Interrupt

0

只是在Python中,^不表示"指数",而是表示"按位异或"。请参见文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接