Пытаться переписать переменные

    print("Please enter some integers to average. Enter 0 to indicate you are done.")

#part (a) -- what are the initial values for these variables?
#incomplete
done = 0
mySum = 0
count =  0   
while not done:
    valid = False #don't yet have a valid input
    while not valid: #this loop keeps attempting to get input until the user enters an integer
        try:
            num = int(input())
            valid = True #now the input is valid, and can use it
        except ValueError:
            print("Input must be an integer.")  
    if num == 0:
        break
        mySum = sum(num)
        count = len(num)
        #part (b) -- fill in the inside of this if statement
        #incomplete


    else: print num  #part (c) -- if num is not zero, then... fill in the code
        #incomplete


avg = mySum / count #calculates average
print("The average is", avg) #prints average

Извините комментарии, так как это задание от инструктора. Как вы можете видеть, строка 28 кода показывает деление на нулевую ошибку для переменной my #part (a) - каковы начальные значения для этих переменных? #incomplete сделано = 0 mySum = [] подсчитывать = Len ( mySum ) , пока не сделано : действительные = Ложные # еще не имеет действительный вход , пока не действует : цикл продолжает попытку # Этого получить ввод до тех пор , пока пользователь не введет целое число попробовать : num = int ( input ()) valid = True # now вход действителен и может использовать его, кроме ValueError : print ( "Input должно быть целым числом." ), если num == 0 : break #part (b) - заполните внутри этого оператора if #incomplete else : mySum . append ( num ) count + = 1 #part (c) - если num не равно нулю, тогда ... заполните код #incomplete avg = sum ( mySum ) / Кол - #calculates среднее , если Len ( mySum ) == 0 : печать «Вы не ввели любое число» еще : печать ( «Среднее является» , ср ) . В цикле while я перезаписал (или, по крайней мере, попытался) my0, но все же получил ошибку разделения. Правильно ли я это делаю или есть какой-то синтаксис, который я не соблюдаю?

EDIT: Новая попытка:

count

python,python-2.7,

-1

Ответов: 2


+ =

«Деление на ноль» является следствием других проблем вашего кода (или его неполноты). Непосредственная причина может быть понята из сообщения: вы деля count, что означает countэто 0в тот момент, что означает , что вы фактически не отслеживаются число поставленных в этом, в свою очередь, - потому что вы ничего не делаете. с номерами, которые вы ввели.

  • В случае total, если вы немедленно countзайметесь; два приведенных ниже утверждения не выполняются.

  • В случае нет 0, вы просто печатаете номер; в массиве не сохраняется число, которое вы можете sumпозже, 0в промежуточной переменной не суммируется, и, конечно же, нет никакого увеличения total.

Существует два основных способа сделать это, на что намечено выше:

Список: создайте пустой список за пределами цикла, когда 0 введенно просто сломано, иначе добавьте новый список в список. После цикла проверьте countgth: если он равен нулю, жалуйтесь, что цифры не были введены, иначе разделите сумму на длину. Не countтребуется.

Текущая сумма: Инициализация lenи countпеременные 0вне цикла; снова, просто перерыв на a 0, в противном случае добавить один к счету и номер к итогу. После цикла сделайте то же самое, только с totalи countвместо, sumи с len.


0

Знаменатель не может быть равен нулю. В этом случае счетчик равен нулю.

Возможно, вам придется использовать count + = 1 вместо count = len (num).

Вы должны проверить, равен ли значение знаменателю до деления.

Предложение: изучить python 3 вместо python 2.7. Python 2 будет, наконец, заменен на python 3.

    mySum = 0
    count = 0
    while True:  # this loop keeps attempting to get input until the user enters        an integer
        try:
            num = int(input("input a num "))
        except ValueError:
            print("Input must be an integer.")
            continue
        if num == 0:
            break
        else:
            mySum += num
            count += 1
            print(num)
    avg = mySum / count if count else 0
    print("The average is", avg)  # prints average
питон, питон-2,7,
Похожие вопросы