為什么eval("14" + "2")的結果是142,而eval("2*7" + "2")的結果是144,而eval("5+9" + "2")則是97
所以說eval()到底有什么用,用在哪里,是怎么個作業原理
uj5u.com熱心網友回復:
eval是把字串的運算式轉換成python陳述句執行。eval("14" + "2")的結果是142 是因為是兩個字串相加,而不是"14 + 2",所以是142而不是16
eval("2*7" + "2")的結果是144 ,是同樣的原因,這么理解: eval里面有兩個字串,字串的加法就是連接,就變成了讓python執行"2*72"這個陳述句, 所以結果是144。
可以print("2*7" + "2") ,輸出為2*72,而eval只不過是把其執行了
uj5u.com熱心網友回復:
順帶一提,理解這個除了上面說的,還有計算的優先順序,括號內的先執行,所以先把字串連接了起來。uj5u.com熱心網友回復:
以你的想法,結果應該是多少?uj5u.com熱心網友回復:
“14”+“2”相當于是“142”,只不過是將字串拆分而已,所以eval("14"+"2")就是eval("142"),也就是142uj5u.com熱心網友回復:
有優先級,先合并字串再進行的運算,一切就都說的通了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/8695.html
上一篇:一個目標跟蹤演算法在我2080ti上跑FPS只有5,在別人的1060s上FPS15
下一篇:關于pytorch批訓練的問題
