flag高高挂起 发表于 2020-3-12 21:52:27

小白求答疑 定义变量的位置不同为神马结果会截然不同

定义变量的位置不同为神马结果会截然不同,代码如下

sm=0
for i in range(100,1000):
    temp=i
   
    while temp:
      sm= sm+(temp%10)**3
      temp=temp//10
    if sm==i:
      print(i)

运行结果为空


for i in range(100,1000):
    temp=i
    sm=0
    while temp:
      sm= sm+(temp%10)**3
      temp=temp//10
    if sm==i:
      print(i)
可得到期望答案

墨羽岚 发表于 2020-3-12 22:03:57

因为你这是外部定义了一个sm变量吧(Python不是很熟悉),对于第二个例子你在for外部定义sm=0也不会影响程序结果

wuqramy 发表于 2020-3-12 22:05:23

如果你把sm = 0放在循环里面,循环一次就会清零
页: [1]
查看完整版本: 小白求答疑 定义变量的位置不同为神马结果会截然不同