2016-04-01 28 views
1

試圖瞭解如何以最基本的方式簡化以下代碼snipet,該代碼是'while'循環的一部分。Python - 值替換,計算和打印 - 簡化

a1,b1 = a,b 
a = b1 
b = a1 + b1 
print(a1, end="") 

我不想簡化整個'while'循環,只是上述snipet用於替換,計算和打印。有關其他見解,請參閱整個while循環。

while element < end_element: 
    element = element + 1 
    a1,b1 = a,b 
    a = b1 
    b = a1 + b1 
    print(a1, end="") 

歡迎任何見解!提前致謝。

+0

供參考:'元=元素+ 1'可以改成'element + = 1' –

+0

優秀!偉大的投入在這裏,沒有想到這一點。謝謝。 – dpx

回答

1

試試這個。它會工作。

print(a, end="") 
a,b = b,a+b 

而且整個看起來就像這樣:

while element < end_element: 
    element += 1 
    print(a, end="") 
    a,b = b,a+b 
+0

我認爲你的意思是'element + = 1'而不是'element + = element'。 –

+0

謝謝,我已糾正它。 – Randhawa

+0

謝謝!通過移動上面的「a,b = b,a + b」的打印語句來確保在序列中包含第一個數字。當按照原始代碼結束打印語句時,序列中的第一個數字在打印之前正在被添加所撞擊。我的下一個問題是如何可以(而不是結束=「」),我怎樣才能得到輸出爲逗號分隔,我試過打印(a,end =「,」),但是,後面有一個逗號我試圖擺脫的最後一個數字。我也試過(a,sep「,」),但是,它只是垂直打印數字。 – dpx

1

嘗試

a,b = b,a+b 

這會出現在我測試的例子來工作,是爲這個目的。

1

我想這是最簡短的方式來做到這一點while循環:

while end_element: 
    print(a, end="") 
    end_element, a,b = end_element - 1, b,a+b 
+0

您正在打印修改過的'a'。儘管在原來的邏輯中,他需要的是一個'a',而在改變之前是一個'a'。 – Randhawa

+0

@Randhawa感謝您的評論。 –