Python学习笔记 3.0 while与循环
循环
一、循环简介
1.1 循环的作用:让代码更高效的重复执行
1.2 循环的分类:在python中,循环分为while和for两种,最终实现效果相同
二、while的语法
while 条件:
条件成立重复执行的代码
…
实例:
循环计数器的习惯写法:计数器起始为0; 将 <= 改为 <;即i = 0 i <5
若使用debug,将鼠标指针悬停在i<5上面会显示布尔值,以判断循环是否接着执行
应用一、循环应用之累加到100:
做题顺序:
- 准备做加法运算的数据 1-100 增量为1
- 准备变量保存将来运算的结果
- 循环做加法运算
- 打印结果
- 验证结果正确性
应用二、计算1-100偶数累加和:
方法一:条件判断和2取余数则累加
做题思路:
- 准备累加的数字 开始1 结束100 增量1
- 准备保存结果的变量result
- 循环加法运算 – 如果是偶数菜加法运算 – 和2取余数为0
- 输出结果
- 验证结果
i = 1
result = 0
while i <= 100:
# 条件语句 -- if
if i % 2 == 0:
# 加法运算
result += i
i += 1
# 输出结果
print(result)
方法二: 计数器控制(增量为2)
i = 0
result = 0
while i <= 100:
result += i
i+=2
print(result)
显然更加方便….
但是第二种是有人的运算所引导出来的方法,而第一种则是由计算器进行的运算方法,所以在正在进行大规模运算的时候,第一种交由计算器的方法更加合理。
一定要有计数器的累加,否则会陷入死循环
三、认识break和continue
break和continue是循环中满足一定条件退出循环的两种不同方式。
1. 理解
2. break实例:
i = 1
while i <= 5:
#条件语句: 如果吃到4 或 >3 打印吃饱了不吃了
if i == 4:
print('吃饱了,不吃了')
break
print(f'吃了第{i}个苹果')
i += 1
3.continue错误实例:
i = 1
while i <= 5:
# 条件
if i == 3:
print('吃出一个大虫子,这个苹果不吃了')
continue
print(f'吃了第{i}个苹果')
i += 1
错误结果:这样将会导致编译器不断输出:吃出一个大虫子,这个苹果不吃了
错误原因:在if判断语句中,由于continue的存在,导致程序不断跳出本次循环从而到达不到计数器使得计数器i+1,从而陷入了死循环。
解决方法1:在if 判断语句和 continue 之间插入 i += 1,使得计数器能够增加,得以跳出死循环
解决方法2:将if语句调制原本循环语句中计数器 i += 1 之后,这样就算跳出了循环也可以让计数器得以增加。
四、while的嵌套
1.语法:
While 条件1:
条件1成立执行的代码
………
While 条件2:
条件2成立执行的代码
……
2.实例
三、 j = 0
while j < 3:
i = 0
while i < 3:
print("\润润子/")
i += 1
print("直接起飞")
print("应援结束--------")
j += 1
4.理解执行流程
当内部循环执行完成之后,再执行下一次外部循环的条件判断。
5.应用
- 打印正方形的星号
i = 0
while i < 5:
j = 0
while j < 5:
print("*", end=" ")
j += 1
i += 1
print()
显而易见的:使用单循环,在每一次循环输出5个星星,然后输出换行
2. 打印三角形的星号
可以在上面程序的基础之上进行修改
while i < 5:
j = 0
while j <= i:
print("*", end=" ")
j += 1
i += 1
print()
3. 打印99乘法表
可以在上面程序的基础之上进行修改
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{i} * {j} = {i * j}", end="\t")
j += 1
print()
i += 1
注意 i 和 j 的联动关系
五、for循环
1.语法
for 临时变量 in 序列:
重复执行的代码
……
临时变量是程序员自己自定义的;序列一般指代的是数据序列。
实例:
str1 = "hello world"
for i in str1:
print(i, end="\t")
2.break在for循环中的应用:
r1 = 'helloworld'
for i in str1:
if i == 'e':
print('遇到e停止打印')
break
print(i, end='\t')
3.continue在for循环中的应用:
str1 = 'helloworld'
for i in str1:
if i == 'e':
print('遇到e停止打印')
continue
print(i, end='\t')
六、else在循环中的应用
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。
1.While…else:
i = 0
while i < 5:
print("\润润子/")
i += 1
else:
print("应援结束")
备注:和去掉else是一样的,目前不知道有什么区别。应该是需要配合break使用;在使用break跳脱出循环的时候是不算循环正常结束
2.退出循环的方法:
1.break
i = 1
while i <= 5:
if i == 3:
print('应援不够大声')
break
print('\ rrz/')
i += 1
else:
print("应援结束")
2.continue;
i = 1
while i <= 5:
i += 1
print('\ rrz/')
if i == 3:
print('应援不够大声')
continue
else:
print("应援结束")
3.for… else
①语法:
②实例:
str1 = 'helloworld'
for i in str1:
print(i, end='\t')
else:
print('循环正常结束执行的else代码')
③break终止循环:
str1 = 'helloworld'
for i in str1:
if i == 'l':
break
print(i, end='\t')
else:
print('循环正常结束执行的else代码')
str1 = 'helloworld'
for i in str1:
if i == 'l':
continue
print(i, end='\t')
else:
print('循环正常结束执行的else代码')