2015-08-09 5 views
-1

Я сделал программу, и я могу сделать концептуальную ошибку, может ли кто-нибудь помочь мне разобраться?Как напечатать максимальное число в списке, используя цикл в python

l=[1,7,6,2,3] 

x=0 

y=0 

for i in l: 

    if(i>y): 
     x=i 
    else: 
     x=y 
    y=i  
print (x)  

Выход он дает, 3 то есть последний номер в списке

МОЖЕТ КАЖДЫЙ POINT МОЕ ОШИБКУ PLSS

+1

Я не уверен, что если вы делаете это для удовольствия или уступки или что-то другое, но вы также можете использовать встроенные в макс. print (max (l)) –

ответ

0

Следующий цикл будет работать,

l=[1,7,6,2,3] 
    x=0 
    for i in l: 
     if(i>x): 
      x=i 
    print (x) 

Вы можете также используйте метод max(), чтобы найти самый большой элемент в списке,

`max(l)` will return `7`. 
0
l=[1,7,6,2,3] 

max=0 # set the max of the list to 0 to start 

for i in l: # run through the entire list 
    if(max<i): # check to see if the present element > max 
     max=i # if so, set max to that value 

print (max)  
2

Этот код будет работать как для положительных, так и для отрицательных записей.

l=[1,7,6,2,3] 

MAX = float('-inf') 
for i in l: 
    if(MAX < i): 
     MAX = i 

print(MAX) 

Выход: 7

Вы также можете решить эту проблему без для петли.

так:

Код

l=[1,7,6,2,3] 
print(max(l)) 

Выход

7 
+0

Вы можете использовать MAX = float ('- inf'), но вся идея этого утверждения сильно зависит от версии Python. – Lukasz

+0

Спасибо за ваш комментарий ... отредактировал мой код ... Пожалуйста, дайте мне знать, если все в порядке. –

+0

Ну, это не совсем то, что я имел в виду ... Если бы я был вами, я бы вернул ваш код в предыдущую версию ... :-) – Lukasz

2

Ваша ошибка была

y = i 

в строке 13, вы должны сделать

y = x 

вместо этого. Однако, если вам не нужно использовать цикл для какой-то причудливой причины, лучшим решением будет использование функции max, как уже указывали другие. Если вы предпочитаете использовать функцию, я бы оптимизировать его еще дальше, например:

l = (-1000, 1, 7, 6, 2, 3, 1000) 
x = float('-inf') 
for i in l: 
    if i > x: 
     x = i 
print x 
Смежные вопросы