目录
前言
一、while循环的基础语法
1)什么是while语句?
2)如何具体实现while语句?
二、while循环的基础案例
1)案例一:
2)案例二:
三、while循环的嵌套应用
1)学习目标:
2)什么是while循环的嵌套
3)如何实现while嵌套?
四、while循环的嵌套案例
1)学习目标
2)补充知识
3)案例
五、for循环的基础语法
1)基础语法
1.遍历字符串:
2.案例:
2)range语句
语法1:
语法2:
语法3:
案例:
3)变量作用域
思考:
临时变量
六、for循环的嵌套应用
练习:
七、循环中断:break和continue
1)continue
2)break
八、综合案例
循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能
while语句有两个要素:条件和操作 ---- 只要条件满足,就去做相应的操作,直到条件不满足,就跳出循环
只要条件满足,会无限循环执行,条件为布尔类型
示例:
# 循环语句
i = 0
while i < 100:
print("拼搏百天,我要上北大!")
i += 1
往下滑,可以发现运行框有一百句 拼搏白天,我要上北大!
即可知 在符合条件的情况下,循环语句里的内容就会一直执行
需要注意:
1.while的条件需得到布尔类型,True表示继续循环,False表示结束循环
2.需要设置循环终止的条件,如i+= 1配合i<100,就能确保100次后停止,否则将无限循环
3.空格缩进和if判断一样,都需要设置
# 求1-100的和
i = 1
num = 0
while i <= 100:
num += i
i += 1
print(f"1-100的和为{num}")
提示:
无限次机会,终止条件不适合用数字累加来判断
可以考虑布尔类型本身(True or False)
需要提示几次猜中,就需要提供数字累加功能
随机数可以使用:import random
num = random.randint(1-100)
# 思考一下思路,才可以看答案噢
import random
num = random.randint(1, 100)
count = 0
flag = True
while flag:
guess_num = int(input("请输入你猜测的数字:"))
if guess_num == num:
print("猜对啦")
flag = False
else:
if guess_num < num:
print("猜的数字比实际数字小")
else:
print("猜的数字比实际数字大")
count += 1
print(f"一共猜测:{count}次")
掌握while嵌套循环基本格式
完成while嵌套循环的应用
示例:规定要坚持学习python100天,每天依次需要刷10道python编程题,规定完成100天后学习完毕
i = 1
while i <= 100:
print(f"今天是学习python的第{i}天")
j = 1
while j <= 10:
print(f"这是今天学习python刷的第{j}题")
j += 1
print("今天学习完规定的python的内容啦")
i += 1
print(f"坚持到第{i-1}天,成功学习完python")
需要注意:
同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
基于空格缩进来决定层次关系
掌握使用while嵌套循环,打印九九乘法表
1.默认print语句输出内容会自动换行,如下示例:
print("Hello")
print("World")
#输出结果为:
Hello
World
在即将完成的案例中,我们需要使用print语句,输出不换行的功能,非常简单!
print("Hello", end='')
print("World", end='')
#输出结果
HelloWorld
2.制表符\t
在字符串中,有一个特殊符号: t,效果等同于在键盘上按下: tab键
它可以让我们的多行字符串进行对齐。
print("Hello World")
print("itheima best")
print("Hello\tWorld")
print("itheima\tbest")
思路:
1.控制行的循环 i<=9
2.控制每一行输出的循环 j<=i
3.每一行的被乘数都是i,乘数是j,print(j*i, end= ' ')
4.每一行对齐\t
代码:
# 定义外层循环
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,并且通过\t 进行对齐
print(f"{j} * {i} = {j * i}\t", end='')
j += 1
i += 1
print() # print空内容 就是输出一个换行
除了while循环语句外,Python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:
while循环的循环条件是自定义的,自行控制循环条件
for循环是一种”轮询”机制,是对一批内容进行”逐个处理
通俗而言:for循环就是将“待办事项”逐个完成的循环机制
生活中的for循环:
程序里的for循环:
从待处理数据集中,逐个取出数据赋值给临时变量
# 定义字符串name
name = "itheima"
# for循环处理字符串
for x in name:
# 对name的内容,挨个去除赋予x临时变量
# 就可以在循环体内对x进行处理
print(x)
可以看出,for循环是将字符串的内容:依次取出
所以,for循环也被称之为 :遍历循环
需要注意:
同while循环不同,for循环是无法定义循环条件的
只能从被处理的数据集中,依次取出内容进行处理。
所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
提示:
1.计数可以在循环外定义一个整数类型变量来做累加计数
2.判断是否为字母"a",可以通过if 语句结合比较运算符来完成
# 统计如下字符串,有多少个字母a
name = "itheima is a brand of itcast"
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
if x == "a":
count += 1
print(f"{name}中共含有:{count}个字母a")
语法中的:待处理数据集,严格来说,称之为: 序列类型
序列类型指,其内容可以一个个依次取出的一种类型,包括:
字符串、列表、元组、等
目前我们只学习了字符串类型,其余类型在后续章节会详细学习它们
for循环语句,本质上是遍历:序列类型。
尽管除字符串外,其它的序列类型目前没学习到,但是不妨碍我们通过学习range语句,获得一个简单的数字序列。
range(num)
# 获取一个从0开始,到num结束的数字序列(不含num本身)
# 如 range(5)取得的数是:[0,1,2,3,4]
range(num1, num2)
# 获得一个从num1开始,到num2结束的数字序列(不含num2)本身
# 如,range(5,10)取得的数据是:[5,6,7,8,9]
range(num1, num2, step)
# 获得一个从num1开始,到num2结束的数字序列(不含num2本身)
# 数字之间的步长,以step为准(step默认为1)
# 如,range(5,10,2)取得的数据是:[5,7,9]
和while进行比较:
i = 1
while i <= 10:
print("送玫瑰花")
i += 1
for x in range(10):
print("送玫瑰花")
# 由以上代码可知,在进行一个序列的处理时,for循环的效率更高
count = 0
for x in range(1, 100):
if x % 2 == 0:
count += 1
print(f"1到100(不含100本身)范围内,有{count}个偶数")
for i in range(5):
print(i)
print(i)
如上代码,思考:第二个print语句,能否访问到变量?
回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量为什么是临时的
的呢?
在编程规范上,作用范围(作用域),只限定在for循环内部
如果在for循环外部访问临时变量:
实际上是可以访问到的
在编程规范上,是不允许、不建议这么做的
如果真的想要在for循环外部去访问i这个变量 ,应该怎么办呢?
很简单,只需要在for循环之前把i定义出来就好了
程序中的嵌套for循环
for i in range(1, 101):
print(f"今天是学习python的第{i}天")
for j in range(1, 11):
print(f"这是今天学习python刷的第{j}题")
print(f"今天学习完规定的python的内容啦")
# 用for循环写九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j} * {i} = {j * i}\t", end='')
print()
思考:无论是while循环或是for循环,都是重复性的执行特定操作
在这个重复的过程中,会出现一些其它情况让我们不得不:
暂时跳过某次循环,直接进行下一次
提前退出循环,不再继续
continue关键字用于: 中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
for i in range(1, 100):
语句1
continue
语句2
在循环内,遇到continue就结束当次循环,进行下一次
所以,语句2是不会执行的。
应用场景:
在循环中,因某些原因,临时结束本次循环
for i in range(5):
print("ddd")
continue
print("bbb")
和continue不同,break语句是直接把循环结束了
for i in range(1, 101):
print("语句1")
break
print("语句2")
print("语句3")
所以这个循环不论还有多少次没有执行,遇到break就会跳出循环,直接结束所在的循环
import random
wallet_money = 10000
for i in range(1, 21):
print(f"目前领取的员工编号为{i}")
performance = random.randint(1, 10)
if performance < 5:
print("sorry,您的绩效未达到标准,下个月继续加油噢!")
continue
elif wallet_money < 1000:
print(f"sorry,余额不足啦,当前余额{wallet_money}")
break
else:
print(f"员工{i}成功领取工资!,当前公司余额{wallet_money}元")
wallet_money -= 1000
ok,以上就是python中循环语句的基础语法知识啦,下一章节将会展开函数的学习,继续加油吧
一起愉快的学习python吧lol