流程控制语句(二)
简介
Python代码在执行时是按照自上向下顺序执行的。
通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次
流程控制语句分成两大类:条件判断语句,循环语句
循环语句
循环语句可以使指定的代码块重复指定的次数
循环语句分成两种,while循环 和 for循环
while循环
# 语法:
# while 条件表达式 :
# 代码块
# else :
# 代码块
执行流程:
while语句在执行时,会先对while后的条件表达式进行求值判断,
如果判断结果为True,则执行循环体(代码块),
循环体执行完毕,继续对条件表达式进行求值判断,以此类推,
直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块
条件表达式恒为True的循环语句,称为死循环,它会一直运行,慎用!
# while True :
# print('hello')
循环的三个要件(表达式)
# 初始化表达式,通过初始化表达式初始化一个变量
# i = 0
# # 条件表达式,条件表达式用来设置循环执行的条件
# while i < 10 :
# print(i)
# # 更新表达式,修改初始化变量的值
# i += 1
创建一个执行十次的循环
i = 0
while i < 10 :
i += 1
print(i,'hello')
else :
print('else中的代码块')
练习1:
求100以内所有的奇数之和
获取所有100以内数
i = 0
# 创建一个变量,用来保存结果
result = 0
while i < 100 :
i += 1
# 判断i是否是奇数
if i % 2 != 0:
result += i
print('result =',result)
获取100以内所有的奇数
i = 1
while i < 100:
print(i)
i += 2
练习2:
求100以内所有7的倍数之和,以及个数
i = 7
# 创建一个变量,来保存结果
result = 0
# 创建一个计数器,用来记录循环执行的次数
# 计数器就是一个变量,专门用来记录次数的变量
count = 0
while i < 100:
# 为计数器加1
count += 1
result += i
i += 7
print('总和为:',result,'总数量为:',count)
练习3:
水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:13 + 53 + 3**3 = 153)。
求1000以内所有的水仙花数
# 获取1000以内的三位数
i = 100
while i < 1000:
# 假设,i的百位数是a,十位数b,个位数c
# 求i的百位数
a = i // 100
# 求i的十位数
# b = i // 10 % 10
b = (i - a * 100) // 10
# 求i的个位数字
c = i % 10
# print(i , a , b , c)
# 判断i是否是水仙花数
if a**3 + b**3 + c**3 == i :
print(i)
i += 1
练习4:
获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。
num = int(input('输入一个任意的大于1的整数:'))
# 判断num是否是质数,只能被1和它自身整除的数就是质数
# 获取到所有的可能整除num的整数
i = 2
# 创建一个变量,用来记录num是否是质数,默认认为num是质数
flag = True
while i < num:
# 判断num能否被i整除
# 如果num能被i整除,则说明num一定不是质数
if num % i == 0 :
# 一旦进入判断,则证明num不是质数,则需要将flag修改为false
flag = False
i += 1
if flag :
print(num,'是质数')
else :
print(num,'不是质数')
循环嵌套
在控制台中打印如下图形
*****
*****
*****
*****
*****
创建一个循环来控制图形的高度
循环嵌套时,外层循环每执行一次,内存循环就要执行一圈
# i = 0
# while i < 5:
# # 创建一个内层循环来控制图形的宽度
# j = 0
# while j < 5:
# print("* ",end='')
# j += 1
# print()
# i += 1
#
# * j<1 i=0
# ** j<2 i=1
# *** j<3 i=2
# **** j<4 i=3
# ***** j<5 i=4
i = 0
while i < 5:
j = 0
while j < i+1: #这里的规律是j<i+1
print("* ",end='')
j += 1
print()
i += 1
#
# ***** j<5 i=0
# ****
# ***
# **
# *
练习1:
打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
... 9*9=81
# 创建一个外层循环来控制图形的高度
i = 0
while i < 9:
i += 1
# 创建一个内层循环来控制图形的宽度
j = 0
while j < i:
j += 1
print(f"{j}*{i}={i*j} ",end="")
print()
求100以内所有的质数
# 创建一个循环,求1-100以内所有的数
i = 2
while i <= 100:
# 创建一个变量,记录i的状态,默认认为i是质数
flag = True
# 判断i是否是质数
# 获取所有可能成为i的因数的数
j = 2
while j < i:
# 判断i能否被j整除
if i % j == 0:
# i能被j整除,证明i不是质数,修改flag为False
flag = False
j += 1
# 验证结果并输出
if flag :
print(i)
i += 1
break
break可以用来立即退出循环语句(包括else)
continue
continue可以用来跳过当次循环
break和continue都是只对离他最近的循环起作用
pass
pass是用来在判断或循环语句中占位的
创建一个5次的循环
# i = 0
# while i < 5:
# if i == 3:
# break
# print(i)
# i += 1
# else :
# print('循环结束')
# i = 0
# while i < 5:
# i += 1
# if i == 2:
# continue
# print(i)
# else :
# print('循环结束')
i = 0
if i < 5:
pass
笔记为自己总结
来源为:尚硅谷李老师的课