内容正文:
目录/CONTENTS
1.
for循环
2.
while循环
4.
循环控制语句
3.
循环嵌套
5.
列表推导式
1
for循环
安徽省计算机类高考技能教学
2
什么是循环
在实际应用中,经常需要周而复始地做某一件事。针对此类问题,在Python中可以编写循环结构的程序来解决此类问题。
循环结构是控制一个语句块重复执行的程序结构,由循环条件和循环体两部分组成,循环结构的特点是:在一定条件下重复执行某些语句,直至重复到一定次数或该条件不再成立为止。
Python的循环只有两个for循环和while循环
接下来,我们具体了解for循环和while循环。
我们需要掌握for循环和while的语法结构,以及两者的优缺点,才能更好的解决Python的循环类型的问题。
for循环常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。
for循环的定义
语法结构:
for 迭代变量 in 字符串|列表|元组|字典|集合:
语句块1
[else:
语句块2]
for的循环次数取决于序列里面的元素个数
s=["张三","李四","王五"]
for name in s:
print(name)
遍历列表输出元素
第一次循环,name元素“张三”,输出“张三”;
第二次循环,name元素“李四”,输出“李四”;
第三次循环,name元素“王五”,输出“王五”;
已取值至结尾,结束循环
运行解释
遍历列表输出元素
range()函数
在for循环中可用内置函数range()方便快捷的生成一个整数序列。
Python中range()函数格式如下:
range(start,stop[,step])
参数说明:
start:计数从start开始,默认是从0开始。如range(4)等价于range(0,4)
stop:计数到stop结束,但不包括stop。如range(0,4)是包含数字[0,1,2,3]
step:步长,默认为1。如range(0,4)等价于range(0,4,1),步长也可以为负整数如range(5,0,-1)则产生的整数序列为5 4 3 2 1
for i in range(1,6):
print(i)
计算1-10的累加和
range()函数应用
s=0
for i in range(1,11):
s+=i
print(s)
输出整数1,2,3,4,5
倒序输出整数10-1
for i in range(10,0,-1):
print(i)
计算1-100(包含100) 之间奇数的累加和
s=0
for i in range(1,101,2):
s+=i
print(s)
while循环
安徽省计算机类高考技能教学
8
while循环执行顺序为:判断条件为True,执行语句块1,条件为False时退出循环执行else子句的语句块2(else子句可省略)
while循环的定义
while 条件表达式:
语句块1
[else:
语句块2]
n= 0
while n <4: # n<=3
print(str(n)+"小于4")
n= n + 1
输出0至3的整数
第一次循环,n为0,0<4 结果为True, 输出”0小于4”,n+1,n1;
第二次循环,n为1,1<4 结果为True, 输出”1小于4”,n+1, n2;
第三次循环,n为2, 2<4 结果为True,输出”2小于4”,n+1 ,n3 ;
第四次循环,n为3, 3<4 结果为True,输出”3小于4”,n+1 ,n4 ;
n<4 结果为False,结束循环。
运行解释
输出0至3的整数
i=1
while i<=5:
print(i)
i+=1
计算1-10的累加和
while循环例题训练
s=0
i=1
while i<=10:
s+=I
i+=1
print(s)
输出整数1,2,3,4,5
无限循环
while True:
pass
计算1-100(包含100) 之间奇数的累加和
s=0
i=1
while i<=100:
s+=i
i+=2
循环嵌套
安徽省计算机类高考技能教学
12
一个循环体里面嵌套另外一个循环体时,称之为“循环嵌套”。for语句和while语句循环嵌套语法格式如下:
for 变量1 in 遍历序列1:
for 变量2 in 遍历序列2:
语句块2
语句块1
while 条件表达式1:
while条件表达式2:
语句块2
语句块1
当然可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环,可以在for循环中嵌入while循环。
循环嵌套的定义
循环嵌套例题训练
打印九九乘法表
输出下列的图形
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}*{i}={j * i}", end="\t")
print()
for i in range(1,6):
print(" "*(5-i),end='')
for j in range(1,2*i):
print("*",end='')
print()
循环控制语句
安徽省计算机类高考技能教学
15
break语句:用来跳出本层循环语句,在循环条件不为False或者序列还没循环完的情况下,也会终止循环语句。break语句可用在while和for循环中。若在嵌套循环中,break语句只跳出本层循环。
continue语句:用来跳出本次循环。continue后的剩余语句都将跳过,继续进行下一轮循环。continue语句用在while和for循环中。
pass是空语句,不作任何操作,纯粹为了保持程序结构的完整性。
循环控制语句:break、continue、pass
num=int(input("请输入一个数:"))
flag=True
for i in range(2,num):
if num % i != 0:
pass
continue
else: # num%i==0
flag = False
break
if flag == True :
print(num,"是素数")
else:
print(num,"不是素数")
素数又叫质数(prime number),有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
输入:5
flag为True
循环从2至4
5 % 2 !=0 结果为True ,运行pass,continue结束本次循环;
5 % 3 !=0 结果为True ,运行pass,continue结束本次循环;
5 % 4!=0 结果为True ,运行pass,continue结束本次循环;结束循环,flag无改变,仍为True。
flag==True 结果为True
输出“5是素数”
运行解释
判断素数
判断素数
键盘连续输入数字进行累加,直到输入-1表示退出累加,输出累加和。
例题训练
num = eval(input("请输入自然数(n>=2):"))
if num>=2:
for i in range(2,num):
if num%i==0:
print(f"{num}不是素数")
break
else:
print(f"{num}是素数")
else:
print(f"{num}不是素数")
s = 0
while True:
num = int(input("请输入数字(-1退出累加):"))
if num == -1:
break
s += num
print("累加和:", s)
列表推导式
安徽省计算机类高考技能教学
19
列表推导式
可以通过列表推导式快速高效的创建新的列表,有两种语法格式:
[表达式 for 迭代变量 in 可迭代对象]
例题:生成1-10的整数存放于列表中
lst=[i for i in range(1,11)]
[表达式 for 迭代变量 in 可迭代对象 if 条件表达式]
例题:1-10之间的偶数存放于列表中
lst=[i for i in range(1,11) if i%2==0]
列表推导式的嵌套
可以通过列表推导式的嵌套实现嵌套循环生成元素,语法格式如下:
[表达式 for 迭代变量 in 可迭代对象 for 迭代变量 in 可迭代对象]
例题:打印 lst = [i % j for i in range(1, 3) for j in range(1, 4)] 的输出结果
lst = [i % j for i in range(1, 3) for j in range(1, 4)]等价于下面的代码
lst=[]
for i in range(1, 3):
for j in range(1, 4):
lst.append(i%j)
print(lst)
输出结果为:[0, 1, 1, 0, 0, 2]
谢谢观看
22
$$