前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >#PY小贴士# for 循环定义的变量,循环外可以用吗?

#PY小贴士# for 循环定义的变量,循环外可以用吗?

作者头像
Crossin先生
发布2020-01-17 10:34:23
3.9K0
发布2020-01-17 10:34:23
举报

在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示:

代码语言:javascript
复制
for i in range(10):
    print(i)

我们知道,在 python 中要获取一个变量的值,必须是先给它赋值过,不然就是未定义。那么这个 i,代码中没有显式的赋值,在循环体之外还可以用吗?

答案是肯定的。

代码语言:javascript
复制
for i in range(10):
    pass
print(i)

对此你可以理解成:每次循环,都做了一个 i = 的赋值。

所以,循环外的 i 会保留它在循环中最后的值。可以用它来判断循环进行到了哪里:

代码语言:javascript
复制
for i in range(10):
    if i * 3 > 10:
        break
print(i)

不过直接在循环外使用循环变量也是有风险的,因为循环有可能一次都没有执行:

代码语言:javascript
复制
for i in range(-10):
    pass
print(i)

这时程序就会报错,因为 i 从未被赋值过。

如果确定要在循环外使用 i 的值,可以在循环之前对 i 做一次赋值。这样既不影响循环的正常执行,也避免了未定义的错误:

代码语言:javascript
复制
i = -1
for i in range(-10):
    pass
print(i)

#PY小贴士# 里,我们会分享 python 知识点、开发小技巧、学习中的常见问题等。篇幅短小,适合碎片时间阅读,欢迎关注!

本栏目接受投稿,采纳后将署名发表,可附个人博客、公众号、Github等。

如果你在编程学习中有疑问,可通过以下方式向我们提问:

1. 加入码上行动答疑群(最及时响应)

2. 加入知识星球 https://t.zsxq.com/IiAiiQj

3. 发微博加上 #编程教室# @Crossin(非私信)

提问时请表述清楚,附上必要代码、输出等截屏。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档