[小甲鱼PYTHON入门]00789 了不起的分支和循环
[小甲鱼PYTHON入门]2019.3.7
007了不起的分支和循环1
飞机大战的大概流程
加载背景图片
载入背景图片
加载背景音乐
播放背景音乐(单曲循环)
我方飞机诞生
interval=0
while true :
if 用户是否点击关闭按钮:
退出程序
interval+=1
if interval=50:
interval=0
小飞机诞生
小飞机移动一个位置
屏幕刷新
if 用户鼠标产生移动:
我方飞机中心位置=用户鼠标位置
屏幕刷新
if 我方飞机与小飞机发生碰撞:
我方爆炸,波放撞击音乐
修改我方飞机图案
打印"game over"
停止背景音乐,最好淡出
008 了不起的分支和循环2
elif=else if(体现简洁和可读性)
悬挂else
c语言中else与最近的if相配,容易被代码欺骗
三元操作符
断言(assert)
78课后习题及答案
- if not (money < 100): 这行代码相当于?
if money >= 100:
- assert 的作用是什么?
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。
什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。
一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
- 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
x, y, z = z, y, x
- 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
这其实是 Python 的作者还没有为 Python 加入三元操作符之前,Python 社区的小伙伴们灵活的使用 and 和 or 搭配来实现三元操作符的功能,这里边有涉及到列表和切片的知识,这部分知识很快就会讲解,迫不及待的朋友可以先稍微预习下。
- 你听说过成员资格运算符吗?
Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。
name = ‘小甲鱼’
‘鱼’ in name
True
‘肥鱼’ in name
False
0 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
score = int(input(‘请输入一个分数:’))
if 80 > score >= 60:
print(‘C’)
elif 90 > score >= 80:
print(‘B’)
elif 60 > score >= 0:
print(‘D’)
elif 100 >= score >= 90:
print(‘A’)
else:
print(‘输入错误!’)
1请将以下代码修改为三元操作符实现:
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
我的代码
x,y,z=6,5,4
small=x if (x<y and x<z ) else (y if y<z else z)
009了不起的分支和循环3
while 条件:
循环体
for 目标 in 表达式:
循环体
例如
for i in love:
print(i,end=’ ')
c h i w e n q i a n g
range()
语法: range([start,] stop[,step=1]
表示生成一个从start参数的值开始一直到stop参数的值结束的序列(不包含stop)
step=1表示第三个参数默认值为1#####好像没啥用
例如:
list(range(3))
[0, 1, 2]
又例如:
for i in range(2,8):
print(i)
2
3
4
5
6
7
又例如:
for i in range(1,11,2):
print(i)
1
3
5
7
9
break
终止循环
continue
终止本轮循环并开始下一轮循环
9课后习题及答案
- 下面的循环会打印多少次"I Love FishC"?
for i in range(0, 10, 2):
print(‘I Love FishC’)
5 次,因为从 0 开始,到 10 结束,步进为 2。
- 下面的循环会打印多少次"I Love FishC"?
for i in 5:
print(‘I Love FishC’)
复制代码
会报错,上节课的课后习题我们提到了 in 是“成员资格运算符”,而不是像 C 语言那样去使用 for 语法。Python 的 for 更像脚本语言的 foreach。
- 回顾一下 break 和 continue 在循环中起到的作用
break语句的作用是终止当前循环,跳出循环体。
continue语句的作用是终止本轮循环并开始下一轮循环(这里要注意的是:在开始下一轮循环之前,会先测试循环条件)。
- 请谈下你对列表的理解
嗯,有些知识点需要自己总结才能加固,下节课小甲鱼将跟大家畅谈一个打了激素的数组:列表,不容错过哦_
- 请问 range(10) 生成哪些数?
会生成 range(0, 10),list(range(0, 10)) 转换成列表是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],注意不包含 10 哦。
- 目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3)
复制代码
会打印:
2
3
因为 break 只能跳出一层循环,记住咯!
- 什么情况下我们要使循环永远为真?
while Ture:
循环体
同样用于游戏实现,因为游戏只要运行着,就需要时刻接收用户输入,因此使用永远为真确保游戏“在线”。操作系统也是同样的道理,时刻待命,操作系统永远为真的这个循环叫做消息循环。另外,许多通讯服务器的客户端/服务器系统也是通过这样的原理来工作的。
所以永远为“真”虽然是“死循环”,但不一定是坏事,再说了,我们可以随时用 break 来跳出循环!
- 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i = 0
string = ‘ILoveFishC.com’
length = len(string)
while i < length:
print(i)
i += 1
1设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内
我的代码:
temp=input(“请输入密码:”)
time=2
i=0
while time:
if temp==“cwq1995”:
print(“密码正确,进入程序。。。。”)
break
elif ‘’ in temp:
print("密码中不能含有’’,请重新输入,你还有",time+1,“次机会”)
temp=input()
continue
elif temp!=“cwq1995”:
time-=1
print(“密码输入错误,你还有”,time+1,“次机会”)
temp=input()
if time==0:
print(“三次机会已用完,拜拜”)
break
2编写一个程序,求 100~999 之间的所有水仙花数。
我的代码
i=0
for i in range(100,1000):
sum=0
temp=i
while temp:
sum=sum+(temp%10)**3
temp//=10
if sum==i:
print(i,“为水仙花数”,end=’ ')
3三色球问题:有红、黄、蓝三种颜色的球,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
我的代码:
print(“红”,“黄”,“绿”)
a=’’
i=0
for red in range(0,4):
for yel in range(0,4):
for gre in range(2,7):
if red + yel + gre ==8:
print(red,a, yel, a,gre)
- 第007、008讲:了不起的分支循环1&2 | 学习记录(小甲鱼零基础入门学习Python)
- 小甲鱼python视频007了不起的分支和循环--笔记 2018.1.1
- 【零基础入门Python学习笔记008】了不起的分支和循环2
- 小甲鱼python视频008了不起的分支和循环2--笔记 2018.1.14
- 小甲鱼python零基础课后习题007了不起的分支和循环1
- Python[小甲鱼009了不起的分支和循环3]
- 小甲鱼python零基础课后习题009了不起的分支和循环3
- 【零基础入门学习Python笔记009】了不起的分支和循环3
- 零基础入门学习Python(8)--了不起的分支和循环2
- 零基础入门学习Python(8)--了不起的分支和循环2
- Python[小甲鱼007了不起的分支和循环]
- Python[小甲鱼008了不起的分支和循环2]
- 小甲鱼python零基础课后习题008了不起的分支和循环2
- 零基础入门学习Python(7)--了不起的分支和循环1
- 零基础入门学习Python(9)--了不起的分支和循环3
- 零基础入门学习Python(7)--了不起的分支和循环1
- 零基础入门学习Python(9)--了不起的分支和循环3
- 【零基础入门学习Python笔记007】了不起的分支和循环1:打飞机框架
- 了不起的分支和循环03 - 零基础入门学习Python009
- python入门与进阶篇(三)之分支、循环、条件与枚举