2020-2-10 Python基础学习8 9

分支和循环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后的条件为假时,程序自动崩溃
可以作为程序中的检查点

  1. if not (money < 100): 上边这行代码相当于?
    money大于100时继续
    money小于100时跳出

  2. assert 的作用是什么?
    acent后的条件为假时,程序自动崩溃

  3. 假设有 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)

  1. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?

  2. 你听说过成员资格运算符吗?
    Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。

  3. 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。

题目备忘:按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。

  1. 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)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值