42.(C)執行以下Python程式的輸出結果為何?(113中科實中)(A)52 (B)91 (C)130 (D)169

loop 共有0-12共計13次 13*4 =52
(0+12)*13/2=6*13=78
78+52=130
loop 內的X 值不會影響到 for 迴路 變數次數 ,While 則會
這是因為 在python for loop中,我們一開始給定多少次數, i 就一定會把它全部跑完,並不會因為你在for loop內調整 變數 X 就改變
所以中途改變 i 是不會影響Loop 次數
但在某些程式語言中 (例如 C/C++ VB Java) 是dynamic for loop
迴圈的變數是會被改變的
for 時他是變動
for x in range(0, 2):
print(id(x) ,end=" ")
輸出
135569595445928 135569595445960
Tips 每次都會產生新的位置
所以 x 每次都由 range 取出一個值出來,所以每次位置都不一樣
這是因為 python 的變數是使用 Interning 算是變數share reference的延伸應用,也是Python自動built-in的機制,python認為-5~256屬於常用數字,所以將他的記憶體空間固定起來,要用時指向同一個就行,就不需要再重複開啟記憶體空間>指派>刪除空間的動作,節省時間
所以看起來變數位址是連續的,
x=x+4等號左方是New X 而 等號右方是 Old X
故和C結果是不同的 而且FOR 這個 LOOP 只是單純跑 12次