#python
Вопрос:
У меня проблема,когда я ввожу последовательность [-2,-2, -5,6,0], она выводит -2, а не 6 проблем при разрыве. Какое-либо другое решение для этого ?
z = [] a = 0 max = 0 while True: b = int(input("Enter a Number ").strip()) z.append(b) if b == 0: break while a lt; len(z) : if z[a] gt; z[a 1]: max = z[a] break a = 1 print(f"the max number is {max} his appearence is :{z.count(max)}")
Комментарии:
1. если я не использую break, появится ошибка, в которой будет написано IndexError: индекс списка вне диапазона
2. это связано с последней итерацией второго цикла while, где
a=len(z)-1
. вif
том, что вы ищетеz[a 1]
, что выходит за рамки дозволенного. обновите свой код, чтобы вам это не понадобилосьbreak
3. должен ли он также выводить 0, если это было наибольшее число?
4. Нет, он должен удалить его из списка
Ответ №1:
Избегайте использования ключевого слова, такого как «max», в качестве переменной. Кроме того, как упоминалось в комментариях, проверьте свою логику цикла while. Вот решение вашей проблемы, если вы согласны с использованием функций/методов.
z = [] while True: b = int(input("Enter a Number ").strip()) z.append(b) if b == 0: break max_value = max(z) index_of_max = z.index(max(z)) print(f"the max number is {max_value} his appearence is :{index_of_max}")
Комментарии:
1.
index_of_max = z.index(max_value)
было бы лучше2. я сделал это z = [], пока верно: b = int(ввод(«Введите число «).полоса()) z.добавить(b) , если b == 0: перерыв z.удалить(0) максимальное значение = максимальное(z) печать(f»максимальное число {максимальное значение} его внешний вид :{z.количество(максимальное значение)}»)