循环语句:循环语句可以使指定的代码块重复执行指定的次数。
分类:whlie循环和for循环
1、while循环
语法:
while 条件表达式:
代码块
else :
代码块
执行流程:while语句在执行时,先对while后的条件表达式进行求值判断:如果判断结果为True,则执行循环体(代码块);循环体执行完毕,继续对条件表达式进行求值判断,以此类推;直到判断结果为False,则循环终止,如果有对应的else,则执行else。
注意:条件表达式恒为True,称为死循环
#条件表达式恒为True,称为死循环
while True:
print('别惹我,我是死循环')
#条件表达式恒为True,称为死循环
i=0
while i<8:
print('别惹我,我是死循环')
#因为i=0始终小于8,所以条件表达式一直未True
所以写循环语句必有三条件:
(1)初始化表达式:通过初始化表达式初始化一个变量;
(2)条件表达式:用来设置循环执行的条件;
(3)更新表达式:修改初始化变量的值。
例1:
#写循环语句必有三条件:初始化、条件表达式、更新表达式
i=0#初始化
while i<8:#条件表达式
i+=1#更新表达式
print(i)
else:
print('程序已执行完毕')
例2:求100以内偶数的和
i=0 #初始化i
sum=0 #初始化sum
while i<100: #100以内的数
i+=1 #每次自增1
if i % 2==0: #如果一个数能被2整除,这个数是偶数
sum+=i #求偶数的和
print('sum=',sum) #打印出结果
例3:求1000以内的水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:13+53+3**3= 153)。
#水仙花数
#1000以内的所有的3位数
#判断他是不是水仙花数
i=100
#1000以内的水仙花数
while i<1000:
i+=1
a = i // 100 #求i百位上的数
b = i // 10 % 10 #求i十位数的数
c = i % 10 #求i个位上的数
if i==a**3+b**3+c**3: #判断i是否是水仙花数
print(i)
print('计数已完成')
例4:用户任意输入一个数,判断是否是质数。
num=int(input('用户输入的任意的整数:'))
#1既不是不质数,也不是合数,最小从2开始判断
i=2
#创建一个变量,用来记录num是否是质数,默认num是质数
flag=True
while i<num:
#判断num
if num % i==0:
#大于2的数,不是质数就是合数,先判断这个数不是质数,再输出是合数
flag=False
i+=1
if flag:
print(num,'是质数')
else:
print(num,'不是质数')
while循环嵌套:循环嵌套时,外层循环每执行一次,内层循环就要执行一遍
#循环嵌套时,外层循环每执行一次,内层循环就要执行一遍
#外层循环控制高度,外层循环控制宽度
i=0
while i<4:
#创建一个内层循环来控制图形的宽度
j=0
while j<i+1:
print('#',end='')
j+=1
print('#')
i+=1
例:打印99乘法表
#打印99乘法表
#创建一个外层循环来控制图形的高度
i=0
while i<9:
i+=1
j = 0
#创建一个内层循环来控制宽度
while j<i:
j+=1
print(f'{j}*{i}={i*j} ',end='')
print()