2017-05-26 42 views
-1

我對python有點新,我最近遇到了這個問題,我無法確定如何找到最小值不使用python中的min或max函數的列表。以下是我的代碼:如何使用while循環同時在python中不使用min函數從列表中找到最小值

#Prompt user to enter a minimum of 5 round trip times separated with commas 
roundTrips = input('Please enter at least 5 round trips seprated by ",": ') 



#Check closest object 
def closest_object(roundTrips): 
    roundTrips = list(roundTrips.split(',')) 
    count = 0 
    minimum = 0 
    if len(roundTrips)<=4: 
     print('error') 
    else: 
     while count<len(roundTrips): 
      positions = roundTrips[count] 
      count += 1 
      if minimum or (int(positions)<minimum): 
       minimum = positions 
       print(minimum) 

    #Perform the parsing of roundTrips input here 

    closestObject = [] 

    print('The closest object is',closestObject) #Modify to display the closest object 

    return closestObject#Do not remove this line 
+0

爲什麼你不能使用'min/max'?這是功課嗎? – ekhumoro

+0

是的,我的講師告訴我可以在不使用min函數的情況下找到最小值。那麼,我試圖做他所說的,但無濟於事,因此我正在尋求幫助在這四米 –

回答

1
lst = [10, 1,2,3,4,5] 
ans = lst[0] 
i=0 
while(i<len(lst)): 
    if lst[i] < ans: 
     ans = lst[i] 
    i+=1 
print(ans) 

這會工作,但我不認爲你需要問的問題在計算器這樣簡單的任務。你可以找到互聯網上很多類似的答案

+0

它的作品謝謝,男人!但是當你構建這些代碼時,你的思維過程在哪裏? –

1
def find_min(l): 
    min = l[0] 
    for i in l[1:]: 
    if i<min: min = i 
    return(min) 

la=[4,2,3,4,5,3,2,4,44,-2] 

print(find_min(la)) 
0

如果你有興趣,爲什麼你的代碼失敗,而不是複製粘貼的答案:

我不知道是什麼if minimum應該完成什麼,但它每次都執行循環minimum != 0,因爲那麼它的計算結果爲True,並且由於or短路,因此不檢查int(positions) < minimum,所以只需刪除if minimum即可。

而且您應該將最小值初始化爲列表的第一個元素,因爲您無法確定其中是否包含0。

相關問題