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

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

for i in range(10): print(i)

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

答案是肯定的。

for i in range(10):    passprint(i)

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

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

for i in range(10): if i * 3 > 10: breakprint(i)

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

for i in range(-10): passprint(i)

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

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

i = -1for i in range(-10): passprint(i)

(0)

相关推荐

  • python语言入门知识

    #1.变量 name="张三"  #变量名=变量值 age=18 hobby="打球" #print(hobby) #2.数据类型 a=66  #整形 int ...

  • Python循环语句代码逐行详解:while、for、break和continue

    导读:循环语句是指重复执行同一段代码块,通常用于遍历集合或者累加计算.Python中的循环语句有while语句.for语句. 作者:黄传禄 张克强 赵越 来源:大数据DT(ID:hzdashuju) ...

  • Python解析之break、continue、pass语句

    Python解析之break、continue、pass语句

  • python循环控制语句

    循环语句 语句后面一定要跟:冒号 for循环: 1.for-in range( ) 遍历 格式:for i  in range(5);或者for i in range( 0,10,3 ); 格式中的1 ...

  • #PY小贴士# 别弄错了 Python 里的这几个运算符

    有人问过这样的问题: 为什么我求圆的面积,结果不对? r = 10s = 3.14 * (r ^ 2)print(s) 还有人问过这样的问题: 为什么判断两个并列条件时结果不对? a = 6if a ...

  • #PY小贴士# 函数也是对象

    之前我们提到过:有同学在写入文件之后发现文件内容并没有改动,有可能是因为在关闭文件时写成了 f.close,没就加括号.那么为什么不加括号就不行,而且程序也没有报错提示呢? 这就要提到 Python ...

  • #PY小贴士# git 的冲突

    讲一个同学问到的 git 问题: 为什么我的 git 在 pull 更新线上最新代码的时候提示失败,然后发现代码里多了一些奇怪的内容: 要如何解决? 这个问题一个人写代码的时候出现的概率不高,但当多人 ...

  • #PY小贴士# 字典可以通过序号索引来访问?

    我们在学 python 中的 list 和 dict 时知道: list 是有序的,所以可以通过 list_a[0] 这样的方式通过索引(index)来访问列表中某个位置上的元素: dict 是无序的 ...

  • #PY小贴士# 同样是排序,sort和sorted有啥不同?

    对列表中的元素进行排序,有两种常用方法: 1. lst = [3, 5, 2, 1, 7]lst.sort()print(lst) 2. lst = [3, 5, 2, 1, 7]lst = sort ...

  • #PY小贴士# BeautifulSoup的解析器选择

    关于解析网页内容的工具 BeautifulSoup,我们之前做过介绍: 网页解析器 BeautifulSoup 上手教程 做爬虫获取网页信息,我推荐使用 bs4,比 xpath 更人性化些. 有爬虫课 ...

  • #PY小贴士# py2 和 py3 的差别到底有多大?

    昨天的文章里也提到了:python 2 版本将在今年正式停止官方维护.(具体时间上有不同说法,1月1号.4月.8月--但这个差别意义不大了) 从我开始做 Python 编程教学的工作开始,就始终在解答 ...

  • 小贴士 | 沙尘天气下的健康防护提示

    沙尘天气下,污染物可通过眼.鼻.喉等黏膜组织及皮肤,直接对人体产生不同程度的刺激症状或过敏反应.沙尘颗粒还可通过呼吸道进入人体,引起多种呼吸系统疾患. 老年人.儿童.孕妇.患有呼吸系统疾病及心血管疾病 ...