此函式按預期選擇 -70 作為最小值,但在應該選擇 54 作為最大值時選擇了 43 作為最大值。我沒有按預期獲得 124,而是僅獲得 113。任何見解將不勝感激。
def difference_max_min(lst):
minn = lst[0]
maxx = lst[0]
for i in range(0, len(lst)):
if lst[i] < minn:
minn = lst[i]
if lst[i] > maxx:
maxx = lst[i]
print(minn)
print(maxx)
return maxx - minn
print(difference_max_min([-70, 43, 34, 54, 22]))
我可能可以通過對串列進行排序并僅獲取第一個和最后一個索引并以這種方式減去它們來更容易地做到這一點,但我一生都無法理解為什么這種方式不起作用。
PS 列印件只是在那里,因為我試圖解決這個問題。
uj5u.com熱心網友回復:
縮進問題:
def difference_max_min(lst):
minn = lst[0]
maxx = lst[0]
for i in range(0, len(lst)):
if lst[i] < minn:
minn = lst[i]
if lst[i] > maxx:
maxx = lst[i]
print(minn)
print(maxx)
return maxx - minn
print(difference_max_min([-70, 43, 34, 54, 22]))
只是為了幫助一點,嘗試運行除錯器來檢查代碼。我會請你調查一下pdb
。這將有助于除錯這些情況。
uj5u.com熱心網友回復:
將 return 陳述句放在 if 陳述句之外。否則,當您的程式第一次發現大于 maxx 的元素時,您將回傳差值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/469346.html
標籤:Python 数组 python-3.x 列表 排序