@qetuo3

Почему метод max не выводит максимальное значение?

*********input.txt***********
100 500 1000

******************************
fin = open('input.txt',)
fout = open('output.txt','w')

a = []
a = fin.readline().split(' ')

fg = min(a)
fgt = max(a)
print('min =' , fg, ',' , ' max =' , fgt)

fin.close()
fout.close()

********output.txt**********
min = 100 , max = 500

******************************
  • Вопрос задан
  • 582 просмотра
Решения вопроса 3
@aveBHS
Потому что у тебя не числа, а строки, надо сначало каждое перевести в число
for i in range(len(a)):
     a[i] = int(a[i])
Ответ написан
milssky
@milssky
Координатор племени фиолетовых обезьянок
А с чего вы решили, что у вас в a список чисел? В a лежат строки и работает max абсолютно предсказуемо.
Ответ написан
Всё просто. Когда ты вызываешь метод readline(), то получаешь массив ['100', '500', '1000\n']. Поэтому max() возвращает '500'. Можно сделать так:
a = []
a = fin.readline().split(' ')
a = list(map(int, a)))
fg = min(a)
fgt = max(a)
print('min =' , fg, ',' , ' max =' , fgt)
fin.close()
fout.close()

Теперть на вход в функцию max() будет поступать список целых чисел и получать корректный результат.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы