python 循环结构(for-in)
- 
说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等 
- 
格式: for x in y:
 循环体执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束 
- 
示例1:遍历字符串 
 s = 'I love you more than i can say'
 for i in s:
 print(i)
- 
示例2:遍历列表 l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟']
 
 for i in l:
 print(i)
 
 # 可以获取下表,enumerate每次循环可以得到下表及元素
 for i, v in enumerate(l):
 print(i, v)
- 
示例3:遍历字典 
 d = {'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'}
 
 for key in d:
 # 遍历字典时遍历的是键
 print(key, d.get(key))
 
 # for key, value in d.items():
 # 上下两种方式等价 d.items() <=> dict.items(d)
 for key, value in dict.items(d):
 print(key, value)
- 
列表生成式 - 
可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象 
- 
range,用法如下: 
 
 print(range(10))
 # 可以生成从0开始到10的连续整数的迭代对象
 print(range(0, 10))
 
 # 可以遍历
 for i in range(10):
 print(i)
 
 # 强制转换为列表
 print(list(range(1, 11)))- 
列表生成式:快速生成具有特定规律的列表 
 
 # 列表生成式
 print([i for i in range(1, 11)])
 print([i*2 for i in range(1, 11)])
 print([i*i for i in range(1, 11)])
 print([str(i) for i in range(1, 11)])
 print([i for i in range(1, 11) if i % 2 == 0])
- 
- 
多重循环:就是循环中嵌套循环 - 
示例1:从终端输入一个整数,打印如下图形: 
 
 n = int(input('请输入一个整数:'))
 
 '''
 1
 1 2
 1 2 3
 1 2 3 4
 ...
 1 2 3 4 ... n
 '''
 
 '''
 j = 1
 while j <= n:
 i = 1
 while i <= j:
 print(i, end=' ')
 i += 1
 print()
 j += 1
 '''
 
 for i in range(1, n+1):
 for j in range(1, i+1):
 print(j, end=' ')
 print()- 
示例2:打印九九乘法表 
 
 for i in range(1, 10):
 for j in range(1, i+1):
 print('{}x{}={}'.format(j, i, j*i), end=' ')
 print()- 
示例3:列表排序(选择法) 
 
 l = [1, 9, 4, 2, 0, 8, 3, 7]
 
 # 获取长度
 n = len(l)
 
 # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置
 # 确定n个元素起始只需要n-1圈即可
 for i in range(n-1):
 # 内层循环用来比较大小交换元素,一圈确定一个元素
 for j in range(i+1, n):
 # 如果不合适
 if l[i] > l[j]:
 # 交换两个变量
 l[i], l[j] = l[j], l[i]
 
 print(l)- 
练习: - 
使用冒泡法排序列表 
 1.冒泡:每次比较相邻的两个元素,不合适就交换,依次向后,一圈下来可以确定一个元素
 2.需要使用双重循环,外层循环控制循环的圈数, 内层控制一圈怎么交换
- 
遍历列表,打印:我叫xxx,今年yyy岁,我来自zzz,数据如下 lt = [ 
 {'name':'小王', 'age':18, 'info':[('phone', '123'), ('dizhi', '广州')]},
 {'name':'小芳', 'age':19, 'info':[('phone', '789'), ('dizhi', '深圳')]},
 {'name':'小杜', 'age':22, 'info':[('phone', '567'), ('dizhi', '北京')]},
 {'name':'小孟', 'age':28, 'info':[('phone', '000'), ('dizhi', '上海')]},
 {'name':'小乔', 'age':26, 'info':[('phone', '111'), ('dizhi', '河南')]},
 ]
- 
从终端输入两个整数m,n,打印m*n的表格,如:2,5,打印如下效果 
 1 2 3 4 5
 6 7 8 9 10
 
- 
 
- 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号