s2=eval("12+45"+"12")
print(s2)
为什么结果是酱紫呢#结果4524
s=eval("1+2"+"10") #结果211
print(s)
为嘛
计算eval("12+45"+"12")分两步
1. "12+45"+"12" 结果为 "12+4512"
2. eval("12+4512")
得结果 4524(即4524 == 12 + 4524)
是这样吗?为什么不是前面的12和后面的12相加,最后是45+1212呢?
@ZKB&&ZKP: 2*3+2为什么不先算3+2呢?
首先"12+45"+"12"="12+4512"(这是一个字符串拼接),所以传进去的是"12+4512",自然结果是4524
不是啊,他的eval函数啊,是怎么算或者合并的嗯; eval("1+2"+"10") 他这是:2+(1+10)这样算的?
@ZKB&&ZKP: "12+45"+"12"是一个字符串拼接而不是有理数的运算
@happyZYM: 那就是拼接,s2怎么能品出来个24呢???
@ZKB&&ZKP: 你能把实际运行结果、期望运行结果、你的代码发给我么?
@happyZYM: 代码就是这些,我本身是学net的,我是初学py,这都是基础,这不是遇到这个eval函数了。
@happyZYM: 在pycharm中运行下,你就知道了
@ZKB&&ZKP: emmmm我是搞OI(这就是为什么我一开始把“酱紫”当成了运行错误)的,主要学c++,py靠搜索引擎也会写一点点。我的理解是:eval函数的参数是一个字符串,首先计算"12+45"+"12"="12+4512"(这是一个字符串拼接),所以传给eval函数的参数是"12+4512",计算结果当然是4524了
@happyZYM: 我也不知道,这样感觉牵强,我还是去看看eval吧