Python-求解循环中一个变量递减操作?

发布网友

我来回答

2个回答

热心网友

错是很正常的,1、局部变量不能影响全局变量 2、a=100 是不可变对象,

你自己看一下

a的值是没有任何变化的

而输出的结果也只是函数中打印的结果

你也可以在外部调用函数变量也就是局部变量 比如:print(tmp) 他会告诉你  tmp名称没有定义  也就是说外部是调用不了局部变量

想明白了吗

热心网友

def decrease(b):
tmp = random.randint(0, b)
print(tmp)
b -= tmp
print('b 的值是%s\n' % b)

if __name__ == '__main__':
a = 100
while a > 0:
decrease(a)

代码一中:在内存中,a指向100,调用decrease时 b也指向100,随机值tmp让b指向了tmp指向的值,循环一次后a的指向没有发生变化,继续循环,最后死循环
代码二中:a的指向发生了变化。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com