我該怎麼做到這一點?Python單線程條件返回for循環
def get_sum(a,b):
return sum(for i in range (a,b)) if a != b else a
我嘗試了幾個不同的東西,但與for循環我無法得到它的工作。
謝謝!
錯誤:
File "", line 2 return sum(for i in range (a,b)) if a != b else a ^SyntaxError: invalid syntax
我該怎麼做到這一點?Python單線程條件返回for循環
def get_sum(a,b):
return sum(for i in range (a,b)) if a != b else a
我嘗試了幾個不同的東西,但與for循環我無法得到它的工作。
謝謝!
錯誤:
File "", line 2 return sum(for i in range (a,b)) if a != b else a ^SyntaxError: invalid syntax
編輯: OP明確了get_sum
功能的意圖,我也相應調整我的答案:
. . . find the sum of all the numbers between including them too and return it. If both numbers are equal return
a
orb
.
您代表達應該採取的表格i for i in range(a, b)
(注意附加i
):
def get_sum(a, b):
return sum(i for i in range(min(a, b), max(a, b) + 1))
更短的版本將放棄發電機完全構建,因爲range
s爲迭代:
def get_sum(a, b):
return sum(range(min(a, b), max(a, b) + 1))
然而,我不能告訴你方法的目的到底是什麼。 。 。是get_sum(10, 11)
真的應該返回與get_sum(10, 10)
相同的結果嗎?
好的謝謝。我看到這個後得到它: def get_sum(a,b): mini = min(a,b) maxi = max(a,b) return sum(i for i in range(mini,maxi +1))if mini!= maxi else maxi –
@michael_b:不需要'if ... else ...'部分:如果沒有這個,你的解決方案已經在'a == b'的情況下給出了正確的值。 –
@MarkDickinson正是我要提到的。我剛完成編輯我的示例以適應問題描述。 – gyre
這已經看起來像一個襯墊。 –
它不工作,雖然 –
你想讓它做什麼?我不明白你的'我在範圍(a,b)'聲明。 – Henry