为什么变量需要在Python中声明但有时不需要声明?

时间:2018-12-20 02:22:05

标签: python variables

我知道Python变量在像示例1那样首次声明时可以使用,但是当我尝试不带行total = 0的示例2时,它将出现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以及何时不应该声明var的定义?

2 个答案:

答案 0 :(得分:0)

total = h + total打算将h的值添加到当前total中。 在没有事先说明total当前是什么的情况下,添加h没有任何价值。

简而言之,如果删除total = 0语句,逐行浏览代码,当到达total = h + total时,h + total应该是未定义的。< / p>

答案 1 :(得分:0)

total = 0本身不是声明:它是初始化。这是必需的,因为当您到达生产线

    total = h + total

RHS上total的值是未知的。 Python尝试查找该值,并在程序中的那个位置找不到该名称的任何内容,因此它会抱怨。