keanushelby 发表于 2021-3-3 18:47:27

Python字符串使用eval函数时关于+和*的疑惑

a=eval('2'+'5*2')
print(a)
在此代码中数字均为字符串类型,那么字符串类型的结合顺序在默认情况下都是从左向右的吗?
还是说使用eval函数的情况下先合并字符串再进行正常的加减乘除,那么为什么不将2直接转换为有效数字然后再进行加减乘除呢?
又或是eval函数将'2'+'5看作了字符串表达类型,然后先进行了合并将合并后的字符串转换为有效数字,然后再进行运算?
求助解答,非常感谢!

逃兵 发表于 2021-3-3 18:56:12

'2'和'2*5'都是字符串
这里将'2'+'5*2'作为参数本身是一个整体,会先将字符串合并
eval('2'+'5*2')
eval('25*2')
50
页: [1]
查看完整版本: Python字符串使用eval函数时关于+和*的疑惑