分支和循环7、8
打飞机游戏流程框架:
背景音乐(加载 播放 循环)
我方飞机生成
循环:敌机按照设定频率、范围生成,按照特定速度前进
(if not点关闭
设定间隔小飞机诞生,小飞机移动一个位置,屏幕刷新)
分支:飞机碰撞到敌机会游戏结束
(if用户鼠标移动
小飞机移动
if发生碰撞
游戏结束,播放撞击音乐
修改飞机团
打印GAME OVER
停止音乐淡出)
分数循环
刚看到这个编程的思路是:
思路1:
若为A,之后浪费计算资源
思路2:
判断成功后直接跳出
思路3:
判断成功后直接跳出
elif=else if:
Python可以避免悬挂else
C需要前后照应,pyhton利用缩进解决
条件表达式(三元操作符)
三个变量的条件判断
语法:x if 条件 else y(如果条件为真,值为x)
accert(断言)
acent后的条件为假时,程序自动崩溃
可以作为程序中的检查点
-
if not (money < 100): 上边这行代码相当于?
money大于100时继续
money小于100时跳出 -
assert 的作用是什么?
acent后的条件为假时,程序自动崩溃 -
假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
x, y, z = z, y, x
看到这个题目的时候我想能不能用代码实现数组元素向左/右移动,第一位补过来?
尝试了很多次后有一个问题:用来计数的变量无法回到0
同时也了解了计数的简单方法i for i in range(10)
目前我想到的几个个解决方案:
①单独给第一位赋最后一位的值
②列表拼接
a=[1,2,3]
b=[]
b.append(a[2])
b+=a[:2]
代码实现:
#!/usr/bin/env python
#coding:utf-8
def ahead_one():
a = [i for i in range(10)]
b = a.pop(0)
a.append(b)
return a
if __name__ =="__main__":
print ahead_one()
列表的处理:
列表定义:a=[]
列表增加:a.append()
列表删除并输出该值:a.pop(0)
-
猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
-
你听说过成员资格运算符吗?
Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。 -
视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
题目备忘:按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。
- Python 的作者在很长一段时间不肯加入三元操作符就是怕跟C语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。
请将以下代码修改为三元操作符实现:
1. x, y, z = 6, 5, 4
2. if x < y:
3. small = x
4. if z < small:
5. small = z
6. elif y < z:
7. small = y
8. else:
9. small = z
1. small = x if (x < y and x < z) else (y if y < z else z)