古月银狐 发表于 2021-4-1 18:43

python中if语句中变量作用域问题

本帖最后由 古月银狐 于 2021-4-1 20:46 编辑

能否帮忙解决下,为何变量money在if语句外面是访问不到的呢? 不是说if , while,for 语句里面的变量在外面是可以访问得到的吗?谢谢!


大家帮我看下,为什么后面这二段代码变量i会有不同的取值?一个能取到,一个不能取到



a = 5
b = 6
if True:# 换成True,if外面的i可以到值,这是为什么?
    i = 0
    while i <= 5:
      if i == 2:
            print("跳出这次:", i)
      else:
            print(".....>", i)
      i += 1

print(i)


a = 5
b = 6
if a < b:# 换成True,if外面的i可以到值,这是为什么?
    i = 0
    while i <= 5:
      if i == 2:
            print("跳出这次:", i)
      else:
            print(".....>", i)
      i += 1

print(i)



QingYi. 发表于 2021-4-1 18:56

因为你money是写在里面的 作用域就是在if里面 出了if money就被释放掉了

咸鱼灭 发表于 2021-4-1 19:01

可以把,你发代码别发图片,帮你跑下看看

阳光肥肥 发表于 2021-4-1 19:05

你的语句如果走else 那么money就未定义 走if则正常

loveliveao 发表于 2021-4-1 19:22

一起学习

古月银狐 发表于 2021-4-1 19:26

阳光肥肥 发表于 2021-4-1 19:05
你的语句如果走else 那么money就未定义 走if则正常

不是资料上说ifwhile for 语句里面的变量在外面能够访问吗、?

古月银狐 发表于 2021-4-1 19:26

Cai_LC 发表于 2021-4-1 19:16
多谢大佬分享

一起交流学习

古月银狐 发表于 2021-4-1 19:31

阳光肥肥 发表于 2021-4-1 19:05
你的语句如果走else 那么money就未定义 走if则正常

走if也不能够正常运行,没有else在外面也不能取得最后一个money 的值

Cool_Breeze 发表于 2021-4-1 19:33

古月银狐 发表于 2021-4-1 19:26
不是资料上说ifwhile for 语句里面的变量在外面能够访问吗、?

不执行if语句为真时,相当与你的代码(真那一段)被注释掉了,可以理解吗?

古月银狐 发表于 2021-4-1 19:55

Cool_Breeze 发表于 2021-4-1 19:33
不执行if语句为真时,相当与你的代码(真那一段)被注释掉了,可以理解吗?

这我可以理解,我的意思是我把ESLE里面的代码注释掉,后面那个money也取不到值
页: [1] 2 3 4
查看完整版本: python中if语句中变量作用域问题