循环结构(while)
-
格式
while 表达式: 语句块
执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行对应的语句块,之后返回while继续判断表达式的真假;若表达式的值为假,则跳过语句块,跳过while。
-
说明:
-
表达式:也叫循环条件
-
语句块:也叫循环体
-
死循环:表达式的值一直为真,称为死循环
-
break:结束循环的执行(立即跳出循环)
-
continue:结束本次循环,直接进入下次循环
-
else:结合while使用
i = 1 while i <= 10: print(i) i += 1 break else: # 循环正常退出会执行,非正常(break)退出时不会执行 print('while正常结束')
-
循环结构(for-in)
-
说明:也是一种循环结构,常用于遍历可迭代的对象,如:字符串、列表、元组、字典、集合
-
格式:
for x in y: 循环体
执行流程:x依次表示y中的一个元素,遍历完所有元素后结束循环。
-
示例:遍历字符串、列表、字典
列表生成式
-
可迭代对象:列表、元组、字典等都是可迭代对象,可以遍历的对象
-
range函数:
print(range(10)) print(range(0, 10)) # range保存的是范围内的连续整数的生成方式 # 可以遍历 for i in range(10): print(i) # 可以转换为列表 lt = list(range(10)) print(lt)
-
列表生成式:可以快速生成有特定规律的列表
# 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])
循环的嵌套
-
循环能否嵌套?
-
答:能
-
-
示例:
''' 从终端输入一个整数n,打印如下图形 1 1 2 1 2 3 1 2 3 4 ... 1 2 3 4 ... n ''' # 外层循环控制打印多少行 i = 1 while i < n+1: # 内层循环控制每一行的打印 j = 1 while j <= i: print(j, end='') j += 1 i += 1 print()
练习:使用for-in完成上面的题目
提示:可以结合range完成
练习:
-
计算1~100之间所有整数的和
-
打印字符A~Z
-
循环输入10个字符,小写转大写,大写转小写,其他字符不变,然后输出
-
将12345转换为54321
-
将12345转换为'12345',不要使用str
-
将'12345'转换为12345,不要使用int
-
遍历列表,打印:
我叫name,今年age岁,家住dizhi,电话phone
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