UR9*_*82T 5 python variables function range
我有以下代码使用for循环:
    total = 0
    for num in range(101):
       total = total + num
       print(total)
现在使用while循环得到相同的结果:
    num = 0
    total = 0
    while num <= 99:
         num = num + 1
         total = total + num
         print(total)
为什么在第一种情况下不必定义num,而在第二种情况下必须定义num呢?他们都不都是变量吗?
我想从稍微不同的角度来回答这个问题。
如果我们查看官方的Python语法规范,我们可以看到(大约而言),一个while语句需要一个test,而一个for语句需要一个exprlistand testlist。
从概念上讲,我们可以理解一条while语句需要一件事:一个可以重复计算的表达式。
另一方面,一条for语句需要两个:要计算的表达式的集合,以及将这些计算结果绑定到的多个名称。
考虑到这一点,while语句不会自动创建临时变量是有道理的,因为它也可以接受文字。相反,for语句必须绑定到某些名称。
(严格来说,就 Python 语法而言,将文字放在语句中期望名称的位置是有效的for,但从上下文来看,这是没有意义的,因此该语言禁止这样做。)