Python笔记 for循环详解
for循环经常用于遍历可迭代对象,像列表、元组、字符串等。
- var 按照sequence的顺序迭代
- 当sequence为空或不能继续迭代的情况出现时执行else
- 将进行改变sequence操作时,注意BUG
1. for 循环的格式
for var in sequence: code1 else: code2
else为可选,当sequence为空或者迭代不能继续的情况下执行else。也就是说加上else语句,一般都会执行。else后也可以加None 或 pass只占个格式。
In [1]:
for i in 'python': print (i) else: print ('没有else') p y t h o n 没有else
In [2]:
for i in 'python': print (i) p y t h o n
In [3]:
for i in 'python': print (i) else: None p y t h o n
In [4]:
for i in 'python': print (i) else: pass p y t h o n
2. for循环嵌套
for 循环可以嵌套for 循环
In [5]:
list_test = [(1,2,3), [0,0], (8,9)]
In [6]:
for _ in list_test: for i in _: print (i) else: print ('这是for嵌套') 1 2 3 0 0 8 9 这是for嵌套
3. 注意循环体内对var赋值不会对循环体产生影响
In [7]:
for i in range(9): print (i, end = ',') i = 3 0,1,2,3,4,5,6,7,8,
In [8]:
i
Out[8]:
3
4. 用切片表示法序列进行影响序列长度的操作
In [9]:
a = [-1,-3,4,5,-6]
In [10]:
for x in a[:]: if x < 0: a.remove(x)
In [11]:
a
Out[11]:
[4, 5]
In [12]:
a = [-1,-3,4,5,-6]
In [13]:
for x in a: # 不用切片表示法将出返回错误结果 if x < 0: a.remove(x)
In [14]:
a
Out[14]:
[-3, 4, 5]
In [15]:
b = [0,1,2,3]
In [16]:
for n in b[:]: # 用切片表示法返回正确结果 if n == 0: b.insert(0,6)
In [17]:
b
Out[17]:
[6, 0, 1, 2, 3] b = [0,1,2,3] for n in b: # 不用切片表示法返将出现BUG if n == 0: b.insert(0,6)