Добавление значения с заменой предыдущего в переменную
Есть ли в Python метод подобный .append
, только позволяющий добавлять значения с заменой предыдущего в переменную?
Нужно что-то вроде :
saver = 0 # Переменная saver в данном случае как бы сохраняет поочередно
# значения из цикла. Ну это в идеале :)
while True :
vvod = input('Введите число')
if saver == 0 or vvod < largest or vvod != 'done' :
saver.append(vvod)
line = vvod
if saver == 0 :
largest = saver
if line == 'done' :
print(f'Цикл завершен! {largest}')
break
if line > largest :
largest = line
Программа вычисляла бы наибольшее число из вводимых (не стал добавлять функцию для проверки ввода т.к. это просто пример). В общем, не нашёл ничего работающего подобным образом. Мог бы подойти список с фиксированным количеством значений, но насколько мне известно так в Python нельзя.
Ответы (1 шт):
При запуске представленного кода должна возникнуть ошибка, т.к. saver
это int
:
AttributeError: 'int' object has no attribute 'append'
Если Вам требуется только вывести максимальное число из введенных, тогда просто перезаписывайте переменную, если введенное число превосходит имеющееся значение:
- Чтобы не добавлять условия с
0
- передавайте в переменную самый первый ввод - Для определения максимального числа используйте функцию
max
- Для сокращения кода можно использовать моржовый оператор
:=
- С ним также получится сделать прерывание цикла через нажание
Enter
- передастся пустая строка, которая будет приведена кFalse
max_num = int(input('Введите число: '))
while num := input('Введите число: '):
max_num = max(max_num, int(num))
print(f'Цикл завершен! {max_num}')
Если всё же нужно сохранить все значения в списке, то наполняйте список через append
, а после аналогично используйте max
(сложность O(n)):
num_list = []
while num := input('Введите число: '):
num_list.append(int(num))
max_num = max(num_list)
print(f'Цикл завершен! {max_num}')