Почему переменные нужно объявлять, а иногда нет в Python? - PullRequest
0 голосов
/ 20 декабря 2018

Я знаю, что переменные Python могут использоваться, когда они впервые объявлены как Пример 1, но когда я попробую Пример 2 без строки total = 0, появится NameError: 'name' total is not defined.Почему?

Пример 1

dmil = float(input("Enter the distance (miles): "))
dis = dmil * 1.61
print("The distance in miles {} is equal to {} in 
kilometer.".format(dmil,dis))

Пример 2

total = 0  #why I necessarily need this?
for i in range (1,4):
    h = float(input("Enter the {} height: ".format(i)))
    total = h + total
avg = total/3
print("The average height of the 3 cousins is ",avg)

Меня действительно смущает, когда я печатаю программы, есть ли определение того, когда я должен объявить var всначала а когда не стоит?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

total = 0 не является декларацией как таковой: это инициализация.Это необходимо, потому что когда вы доберетесь до линии

    total = h + total

, значение total на RHS будет неизвестно.Python пытается найти значение и ничего не находит по этому имени в этой точке вашей программы, поэтому он жалуется.

0 голосов
/ 20 декабря 2018

total = h + total намеревается добавить значение h к тому, что total в настоящее время.Не указав ранее, что такое total в настоящее время, добавить значение h.

просто невозможно. Проще говоря, если вы удалите оператор total = 0, построчно пройдитесь по коду икогда вы достигнете total = h + total, то, что должно быть h + total, не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...