建设网站需要从哪方面考虑,做芯片代理哪个网站推广,中山市企业网站seo哪里好,品牌授权书模板循环普遍存在于日常生活中#xff0c;同样#xff0c;在程序中#xff0c;循环功能也是至关重要的基础功能。 循环在程序中同判断一样#xff0c;也是广泛存在的#xff0c;是非常多功能实现的基础 while循环的基础语法
生活中的循环 程序中的循环 只要条件满足 会无限循…循环普遍存在于日常生活中同样在程序中循环功能也是至关重要的基础功能。 循环在程序中同判断一样也是广泛存在的是非常多功能实现的基础 while循环的基础语法
生活中的循环 程序中的循环 只要条件满足 会无限循环执行
如下程序
i 0
while i 100:print(小美我喜欢你)i 1
1. while的条件需得到布尔类型True表示继续循环False表示结束循环
2. 需要设置循环终止的条件如i 1配合 i 100就能确保100次后停止否则将无限循环
3. 空格缩进和if判断一样都需要设置
同if语句一样空格缩进不能忘要制定好循环终止条件否则将无限循环
案例
接下来做一个小案例增加对前面if判断和while循环的熟练掌握 案例要求 设置一个范围1-50的随机整数变量通过while循环配合input语句判断输入的数字是否等于随机数 要求实现 *猜数无限次机会直到猜中为止 *若每次猜不中会提示大了或小了 *猜完数字后系统会提示总共猜了几次 随机数构建方法
import random
num random.randint(1, 50)
程序代码如下
# 构建一个随机数字变量
import random
num random.randint(1, 50)
print(欢迎来到猜数游戏在下方输入你猜的数值范围(1~50))
# 定义变量 记录总共猜测的次数
count 0
# 通过while语句判断进行数字的猜测
flag True
while flag:guess_num int(input(输入你猜测的数:))count 1if guess_num num:print(恭喜你猜中了)# 循环的终止条件flag Falseelse:if guess_num num:print(猜的大了点哦~)else:print(猜的小了点哦~)
print(f你总共猜了:{count}次!)
我来对这段代码做个解释 前四行看注释不再讲解我们从程序第6行开始进入while循环 第五行的行为flag True 是为了实现让程序一直运行因为要求无限次机会所以终止条件不适合用数字累加来判断可以考虑布尔类型本身True or False 在正式进入while循环后 运行效果 while循环的嵌套
程序中的循环嵌套 同判断语句的嵌套一样循环语句的嵌套要注意空格缩进。
基于空格缩进来决定层次关系
注意条件的设置避免出现无限循环除非真的需要无限循环
案例 案例要求 通过while循环输出如下九九乘法表内容 根据案例要求我们可以使用2层循环通过外层控制行内层控制列
外层循环和内存循环的累加数字变量用以辅助输出乘法表的数值
代码实现
# 定义外层循环控制变量
i 1
while i 9:# 定义内层循环控制变量j 1while j i:# 内层循环的print语句不需要换行,通过\t 制表符进行对其print(f{j} * {i} {j * i}\t, end)j 1i 1print() # print空内容就是输出一个换行
print输出不换行
默认print语句输出内容会自动换行但在print语句中加上 end’’ 即可输出不换行
制表符\t
在字符串中有一个特殊符号\t效果等同于在键盘上按下tab键。
它可以让我们的多行字符串进行对齐。
运行效果 for循环的基础语法
基础语法
除了while循环语句外Python同样提供了for循环语句。
两者能完成的功能基本差不多但仍有一些区别
1.while循环的循环条件是自定义的自行控制循环条件
2.for循环是一种”轮询”机制是对一批内容进行”逐个处理
for循环就是将”待办事项”逐个完成的循环机制 程序中的for循环 从待处理数据集中逐个取出数据赋值给临时变量
for循环语句遍历字符串 同while循环不同for循环是无法定义循环条件的。
只能从被处理的数据集中依次取出内容进行处理。
所以理论上讲Python的for循环无法构建无限循环被处理的数据集不可能无限大 for循环的注意点
for循环是无法定义循环条件的只能被动取出数据处理也需要注意循环内的语句同样需要有空格缩进
range语句 语法中的待处理数据集严格来说称之为可迭代类型
可迭代类型指其内容可以一个个依次取出的一种类型包括字符串列表元组等 for循环语句本质上是遍历可迭代对象。
尽管除字符串外其它可迭代类型目前没学习到但不妨碍我们通过学习range语句获得一个简单的数字序列可迭代类型的一种。 语法1 获取一个从0开始到num结束的数字序列不含num本身 如range(5)取得的数据是[0, 1, 2, 3, 4] 语法2 获得一个从num1开始到num2结束的数字序列不含num2本身 如range(5, 10)取得的数据是[5, 6, 7, 8, 9] 语法3 获得一个从num1开始到num2结束的数字序列不含num2本身 数字之间的步长以step为准step默认为1 如range(5, 10, 2)取得的数据是[5, 7, 9] for循环遍历range序列
# for循环处理字符串
for i in range(5):print(i)运行结果如下 变量作用域
for循环的变量作用域 回看for循环的语法我们会发现将从数据集序列中取出的数据赋值给临时变量
为什么是临时的呢
临时变量在编程规范上作用范围作用域只限定在for循环内部
但如果在for循环外部访问临时变量
实际上是可以访问到的
在编程规范上是不允许、不建议这么做的
如果实在需要在循环外访问循环内的临时变量可以在循环外预先定义
如果实在需要在循环外访问循环内的临时变量可以在循环外预先定义 如图每一次循环的时候都会将取出的值赋予i变量。 由于i变量是在循环之前外定义的 在循环外访问i变量是合理的、允许的
如图每一次循环的时候都会将取出的值赋予i变量。 由于i变量是在循环之前外定义的 在循环外访问i变量是合理的、允许的
for循环的嵌套
同while一样for循环也支持嵌套使用
以向小美表白的案例为例
坚持表白100天
每天送花10束 表白100天每一天都会送10朵玫瑰花
我们目前知道的2个循环while循环和for循环。
这两类循环语句是可以相互嵌套的如下小美表白的案例可以改为
需要注意缩进嵌套for循环同样通过缩进确定层次关系
for循环和while循环可以相互嵌套使用
通过for循环也可以输出如下九九乘法表内容 代码实现
# 通过外层循环控制行数
for i in range(1, 10):# 通过内层循环控制每一行的数据for z in range(1, i 1):# 在内存循环输出每一行的内容print(f{z} * {i} {z * i }\t, end)# 外层循环通过print输出一个回车符print()运行效果不再展示可自行尝试
循环中断 : break和continue
break break关键字用于直接结束所在循环
break可以用于 for循环和while循环效果一致
通过代码来模拟一下追求小美的过程。(以for循环为例while循环效果一样
通过input输入语句来决定今天小美的心情(0表示好心情1表示坏心情 break关键字同样只可以控制它所在的循环永久中断 break只能控制上图内循环对外部循环无影响 continue
continue关键字用于中断本次循环直接进入下一次循环
continue可以用于 for循环和while循环效果一致 通过代码来模拟一下追求小美的过程。(以for循环为例while循环效果一样
通过input输入语句来决定今天小美的心情(0表示好心情1表示坏心情
continue关键字只可以控制它所在的循环临时中断 continue只能控制上图编号1的for循环对编号2的for循环无影响