gpt4 book ai didi

python - 运算符优先级对字符串的工作方式与对数字的工作方式相同吗?

转载 作者:太空狗 更新时间:2023-10-30 03:03:35 27 4
gpt4 key购买 nike

在打代码的时候我偶然发现了一个特殊的问题

>>> print '%'+'-+'[1]+str(5)+'s'%'*'

Traceback (most recent call last):
File "<pyshell#178>", line 1, in <module>
print '%'+'-+'[1]+str(5)+'s'%'*'
TypeError: not all arguments converted during string formatting

我的假设是运算符求值是从左到右发生的,但在这种特殊情况下,似乎即使它的字符串操作,% takes priority over + 并尝试在连接之前评估 's'%'*' 并失败

这是一个已知的记录行为,还是有更多我不明白的事情。

最佳答案

是的,已记录 here .

优先级在整个语言中是一致的,不管被操作的对象是什么。任何其他事情都会非常困惑,因为可以使用“运算符”特殊方法构造对象 - 例如,for %, __mod__() - 任意行为。如果对象也可以定义自己的优先级规则,调试意外结果将变得更加困难。

关于python - 运算符优先级对字符串的工作方式与对数字的工作方式相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18421286/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com