python for循环
for 循环
for循环是一种“轮询”机制,是对一批内容进行“逐个处理”
1.1
结构:for 临时变量 in 待处理数据集(可迭代对象):
循环满足要做的事
可迭代对象是指那些元素能够被单独提取出来的对象,比如,字符串;
什么是可迭代呢? 例如,"FishC",然后每次从里面拿取一个字符出来,依次拿出 F,i,s,h,C这个过程把它称之为迭代。
for each in "FishC":
print(each)
F
i
s
h
C
相当于:
i = 0
while i < len("FishC"):
print("FishC"[i])
i += 1
F
i
s
h
C
1.2
#计算1到1000000的和
sum = 0
for i in 1000000:
sum + i
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
for i in 1000000:
TypeError: 'int' object is not iterable
却保错了,为什么呢? 因为10000000不能迭代,那如何才行?
需要用到 range()函数,就是帮你生成一个数字序列,用法有三种:
range(stop) #生成一个从0到stop的整形数列,**不包括stop本身**
range(start,stop) #指定开始和结束,**不包括stop本身**
range(start,stop,step) # 指定开示,结束和指定跨度,**不包括stop本身**, 相当于 for(i=start; i<stop; i+=step)
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
无论哪一种,range(x)参数必须为整形
for i in range(5,10,2):
print(i)
5
7
9
计算1到1000000的和
sum = 0
for i in range(1000001): #这里要是1000001
sum += i
print(sum)
500000500000
1.3 for循环临时变量作用域
临时变量在编程规范上,作用范围,只限定在for循环内部
如果在for循环外部访问临时变量
- 实际上可以访问到,但在编程规范上是不允许,不建议这么做
for i in range(5):
print(i)
print(i)
"""
运行结果:
0
1
2
3
4
4
"""
编程规则是硬要求,规范是软要求。这样虽然行,但看着low.
1.3.1但如果需要在外部访问怎么办呢
只需要在循环外定义 i
i = 0
for i in range(5):
print(i)
print(i)
浙公网安备 33010602011771号