概述
一、循环语句之while【重点掌握】
1.嵌套循环
类似于嵌套if语句
语法:
while 表达式1:
while 表达式2:
语句
# 1.基本使用
"""
while 表达式1:
while 表达式2:
语句
工作流程:当进行第一次外层循环时,内层循环会全部执行完毕
当进行第二次外层循环时,内层循环会全部执行完毕
....
"""
n = 0
while n < 3:
print(n) # 0 1 2 ---->3
n += 1
m = 0
while m < 5:
print(m) # 0 1 2 3 4---->5
m += 1
print("*" * 50)
# 查看代码的执行顺序:debug
# 外层循环:执行3次
n = 0
while n < 3:
# 内层循环:执行5次
m = 0
while m < 5:
print(n,m)
m += 1
n += 1
# 15
# 注意:无论代码如何嵌套,但凡遇到循环,都是执行完循环语句之后,后面的代码才有执行的机会
print("*" * 50)
# 2.应用:打印九九乘法表
"""
行 列
1x1=1 1 1
1x2=2 2x2=4 2 2
1x3=3 2x3=6 3x3=9 3 3
....
1x9=9 2x9=18 3x9=27 ....... 7x9=63 8x9=72 9x9=81 9 9
规律:
a.行的取值范围:1~9 i
b.列的取值范围:1~i j
c.表达式的格式:列x行=乘积
"""
# 外层循环:控制的是行
row = 1
while row <= 9:
# 内层循环:控制的是列
col = 1
while col <= row:
print(col,'x',row,'=',row * col,end=" ",sep='')
# print(f"{col}x{row}={row * col}",end=' ')
col += 1
# 换行
print()
row += 1
# 3.练习:求1/1! + 1/2! + 1/3! + ....+ 1/20!的结果
# 5! = 5 * 4 * 3 * 2 * 1
# 外层循环:控制的是1~20的数字,求和
num = 1
total = 0 # 记录和
while num <= 20:
# 内存循环:分母的阶乘,求阶乘
m = 1
mul = 1 # 记录阶乘
while m <= num:
mul *= m
m += 1
total += 1 / mul
num += 1
print(total)
# 自己实现:一层循环
二、循环语句之for【重点掌握】
1.基本语法
语法:
for 变量名 in 序列:
循环体
功能:for循环主要用于遍历任何序列【容器】,比如列表,字符串,元组,字典和集合等
遍历:指的是依次访问序列中的每一个元素,获取每个元素值
说明:按照顺序获取序列中的每个元素,赋值给变量名,再执行循环体,如此循环往复,直到取完序列中所有的元素为止
# 1.字符串
for i in "hello":
print(i)
# 2.列表
for n in [10,23,45,6,7,34,5,6,8,1]:
print('hello world')
print("*" * 50)
# 3.range(start,end,step)
"""
range(start,end,step) :根据具体的需求生成一个具有指定规律数据的容器
start:开始数字,可以省略,默认为0,如果不省略,包含在内
end:结束数字,不能省略,不包括在内
step:步长,可以省略,默认为1
包头不包尾/前闭后开区间
"""
# a
for m in range(4):
print(m)
print("*" * 50)
# b
for m in range(5,10):
print(m)
print("*" * 50)
# c
for m in range(1,10,2):
print(m)
print("*" * 50)
# d
for m in range(10,1,-2):
print(m)
print("*" * 50)
# e.start为0,end为10,step为2
# 注意:如果end和step同时出现,则不能省略start
# for m in range(10,2):
# print(m)
print("*" * 50)
"""
注意:
1.如果容器已知,则for循环的次数是由容器中数据的个数决定的
2.如果需要使用连续数字 或者 控制循环的次数,可以使用range()
3.for循环和while循环的使用场景
a.如果不确定循环的次数,则使用while
b.如果确定循环的次数,则使用for
"""
2.使用
# 1.计算从1到1000以内所有奇数的和并输出
n = 1
total = 0
while n <= 1000:
if n % 2 == 1: # n % 2 != 0
total += n
n += 1
print(total)
n = 1
total = 0
while n <= 1000:
total += n
n += 2 # step
print(total)
total = 0
for n in range(1,1001):
if n % 2 == 1:
total += n
print(total)
total = 0
for n in range(1,1001,2):
total += n
print(total)
# 2.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数
m = 1
count = 0
while m <= 100:
if (m % 7 == 0 or m % 3 == 0) and not (m % 7 == 0 and m % 3 == 0):
count += 1
m += 1
print(count)
m = 1
count = 0
while m <= 100:
if (m % 7 == 0 or m % 3 == 0) and m % 21 != 0:
count += 1
m += 1
print(count)
count = 0
for m in range(1,101):
if (m % 7 == 0 or m % 3 == 0) and m % 21 != 0:
count += 1
print(count)
# 3.计算1到500以内能被7整除但不是偶数的数的个数
m = 1
count = 0
while m <= 500:
if m % 7 == 0 and m % 2 != 0:
count += 1
m += 1
print(count)
count = 0
for m in range(1,501):
if m % 7 == 0 and m % 2 != 0:
count += 1
print(count)
# 4.求1-2+3-4………+97-98+99-100的结果
n = 1
total = 0
while n <= 100:
if n % 2 == 1:
total += n
else:
total -= n
n += 1
print(total)
total = 0
for n in range(1,101):
if n % 2 == 1:
total += n
else:
total -= n
print(total)
# 5.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是 ⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153
num = 100
while num < 1000:
bw = num // 100
sw = num // 10 % 10
gw = num % 10
total = gw ** 3 + sw ** 3 + bw ** 3
if total == num:
print(num)
num += 1
print("*" * 30)
for num in range(100,1000):
bw = num // 100
sw = num // 10 % 10
gw = num % 10
total = gw ** 3 + sw ** 3 + bw ** 3
if total == num:
print(num)
三、break和continue【重点掌握】
"""
【面试题】简述break和continue的区别
break:结束break所在的循环
continue:结束本次正在执行的循环,继续下一次循环
"""
# 1.
n = 0
while n < 10:
print(n)
n += 1
# 0-9
n = 0
while n < 10:
print(n)
if n == 5:
break
n += 1
# 0-5
# n = 0
# while n < 10:
# print(n)
# if n == 5:
# continue
# n += 1
# 0~55555.。。死循环
# for循环中,加1的操作是由range()控制的,所以适用于中间某个值不需要执行的情况
for i in range(10):
print(i)
if i == 5:
continue
print("over",i)
# 2.break应用在嵌套循环中,结束的是当前循环【就近原则】
m = 0
while m < 3:
n = 0
while n < 5:
print(m,n)
if n == 2:
break
n += 1
m += 1
# 说明:在实际项目开发中,break应用最多,一般使用break用于提前结束循环,也可以结合死循环使用
四、死循环和else分支【重点掌握】
死循环:在循环语句中,表达式永远为真的循环
语法:
while 表达式:
语句1
else:
语句2
说明:和if-else语句中的作用一样,表示当表达式的值为假的时候,执行else后面的语句2
1.基本使用
# 1.while死循环
# while 1:
# pass
#
# while True:
# pass
# pass:占位语句,没有实际意义,但是可以保证代码结构的完整性,一般用于代码块中
# 2.else分支
"""
while 条件:
pass
else:
pass
for 变量 in 容器:
pass
else:
pass
"""
# a.一般情况下,while-else,for-else,不管循环的条件是否成立,else都会被执行
n = 0
while n < 5:
print(n)
n += 1
else:
print("11111111")
for n in range(5):
print(n)
else:
print('222222')
print("*" * 50)
# b.二般情况下,while-else和for-else结合break使用
# 当while或for中的break被执行,则else没有执行的机会
n = 0
while n < 5:
print(n)
if n == 3:
break
n += 1
else:
print("11111111")
for n in range(5):
print(n)
if n > 10:
break
else:
print('222222')
2.练习
# 练习:模拟用户的登录过程:让用户输入自己的用户名和密码,如果用户名为root,密码为abc,则表示登录成功
# 允许错误三次,如果连续三次输入有误,则禁止登录
for i in range(3):
username = input("请输入你的用户名:")
pwd = input("请输入你的密码:")
if username == 'root' and pwd == 'abc':
print("登录成功!")
break
else:
print("用户名或密码有误,请重新输入")
else:
print("连续输入错误三次,禁止输入")
最后
以上就是俭朴毛豆为你收集整理的Python笔记5-while嵌套循环&for循环&break和continue的全部内容,希望文章能够帮你解决Python笔记5-while嵌套循环&for循环&break和continue所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复