发布网友
共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的指向发生了变化。