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)
posted @ 2022-10-02 16:57  Dalier-!  阅读(111)  评论(0)    收藏  举报