Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Переменная не изменяет значение

Проблема заключается в том, что по идее переменная lowest должна изменять своё значение, как и highest (с ней всё получается), но почему то этого не происходит. Выставляю код вам на обозрение:
digits = [] sum = 0 lowest = 0 highest = 0
while True: digit = input('enter a number or Enter to finish: ') if digit == '': break Digit = int(digit) digits.append(Digit) sum += Digit if len(digits) == 0: lowest = Digit highest = Digit elif highest < Digit: highest = Digit elif lowest > Digit: lowest = Digit
print('numbers: ', digits) print('count =', len(digits), 'sum =', sum, 'lowest =', lowest, 'highest =', highest, 'mean =', sum/len(digits))
Вывод программы такой:
enter a number or Enter to finish: 43 enter a number or Enter to finish: 324 enter a number or Enter to finish: 2 enter a number or Enter to finish: 5 enter a number or Enter to finish: 65 enter a number or Enter to finish: 757 enter a number or Enter to finish: 33 enter a number or Enter to finish: 423 enter a number or Enter to finish: numbers: [43, 324, 2, 5, 65, 757, 33, 423] count = 8 sum = 1652 lowest = 0 highest = 757 mean = 206.5


Ответ

Условие if len(digits) == 0 у Вас не выполняется никогда, т.к. вы добавлете число еще ДО его проверки. Просто переместите digits.append(Digit) в конец цикла, и все заработает.
П.С. Если ввести отрицательное число - должно заработать и так)))
П.П.С. highest также определится неверно, если все числа - отрицательные.
Рабочий код:
digits = [] sum = 0 lowest = 0 highest = 0
while True: try: digit = input('enter a number or Enter to finish: ') except: break if digit == '': break Digit = int(digit) sum += Digit if len(digits) == 0: lowest = Digit highest = Digit elif highest < Digit: highest = Digit elif lowest > Digit: lowest = Digit digits.append(Digit)
print 'numbers: ', digits # print lowest, highest print 'count =', len(digits), 'sum =', sum, 'lowest =', lowest, 'highest =', highest, 'mean =', sum/len(digits)
Вывод консоли:
D:\Python>python test002.py enter a number or Enter to finish: 43 enter a number or Enter to finish: 324 enter a number or Enter to finish: 2 enter a number or Enter to finish: 5 enter a number or Enter to finish: 65 enter a number or Enter to finish: 757 enter a number or Enter to finish: 33 enter a number or Enter to finish: 423 enter a number or Enter to finish: numbers: [43, 324, 2, 5, 65, 757, 33, 423] count = 8 sum = 1652 lowest = 2 highest = 757 mean = 206

Комментариев нет:

Отправить комментарий