2017-05-26 68 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

「最小/最大」を使用できないのはなぜですか?この宿題ですか? – ekhumoro

+0

私の講師は、min関数を使わずに最小値を見つけることが可能だと教えてくれました。まあ、私は彼が言ったことをしようとしたが、役に立たないので、私はこのfourmで助けを求めている –

答えて

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) 

これは動作しますが、私はあなたがstackoverflowの上の質問をする必要があるような単純なタスクのためとは思いません。

は私がif minimumを達成することになっているのか分からないけど何を:あなたはあなたのコードの代わりに失敗した理由に興味があるなら、答えをコピー&ペースト

+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

インターネット上の多くの同様の答えを見つけることができますそれはTrueと評価され、orは短絡しているため、int(positions) < minimumはチェックされていないので、if minimumを削除するため、ループは毎回実行されます(minimum != 0)。

そして、0が含まれているかどうかわからないので、最小値をリストの最初の要素に初期化する必要があります。

関連する問題