鱼C论坛

 找回密码
 立即注册
查看: 1710|回复: 0

[技术交流] 《零基础入门学习Python》 007-008了不起的分支和循环

[复制链接]
发表于 2017-12-5 19:01:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 长脸哥哥 于 2017-12-5 19:00 编辑

  嘀~卡卡卡卡~

1. 课前准备

(1)课件下载:http://bbs.fishc.com/thread-38072-1-1.html
                   http://bbs.fishc.com/thread-43424-1-1.html
                  
2. 学习笔记

(1)不同环境有着不同合适的编程语言
(2)打飞机小游戏的框架:
                        加载背景音乐
                        播放背景音乐(参数设置为:单曲循环)
                        我方飞机诞生
                        interval = 0                       
                        while true:
                                        if 用户是否关闭了关机按钮:
                                                关闭程序
                                        interval = +1
                                        if interval =50:
                                                interval = 0        
                                                小飞机诞生
                                        小飞机移动一个单位
                                        屏幕刷新
                                        if 用户鼠标产生移动:
                                                我方飞机中心位置 = 鼠标所在位置
                                                屏幕刷新
                                        if 我方飞机与敌方飞机发生冲突:
                                                我方挂,播放撞击音乐
                                                修改我方飞机图标
                                                打印"Game over“
                                                停止播放背景音乐,渐渐淡出                        
(3)分支概念,只要程序保持成立或者不成立,就会有不同的操作流程
(4)elif是else if的缩写,体现了python的简洁与可读性好
(5)尽可能的减少其运算时间(6)python可以有效的避免悬挂else,else没有就近原则,采用tab来组合
(7)条件表达式(三元操作符)语法: x if 条件 else y
(8)assert被成为”断言“,如果其后边条件为假时,会使程序崩溃并显示Assertion Error的异常,作为程序的检查点

3. 课堂代码

(1)assert的使用:
  1. assert 3 > 4
复制代码
  1. assert 4 > 3
复制代码

4. 课后作业

4.1 测试题
0. if not (money < 100): 上边这行代码相当于?
答:相当于 if money >= 100:

1. assert 的作用是什么?
答:assert的作用是断言,当其后面跟的条件为假时,程序不在执行并崩溃,提示Assertion Error
2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
答:代码如下:
  1. x=y
  2. y=z
  3. z=1
复制代码
可以这样:
  1. x,y,z=z,y,x
复制代码

3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
答:判断括号内真假的功能

4. 你听说过成员资格运算符吗?
答:集合成员资格运算符:IN ,NOT IN.IN 表示在集合中查询,NOT IN表示不在集合中查询

4.2 动动手

0. 视频中小甲鱼使用 if-elif-else 在大多数情况下效率要比全部使用 if要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80分之间,因此根据统计规律,我们还可以改进下程序以提高效率。
题目备忘:按照 100 分制,90 分以上成绩为 A,80 到 90 为 B,60 到 80 为 C,60 以下为D,写一个程序,当用户输入分数,自动转换为ABCD 的形式打印。

答:代码如下:
  1. temp = int(input("请输入一个成绩:"))
  2. if 79>=temp>=60:
  3.     print("C")
  4. elif 89>=temp>=80:
  5.     print("B")
  6. elif 100>=temp>=90:
  7.     print("A")
  8. elif 59>=temp>=0:
  9.     print("D")
  10. else:
  11.     print("输入错误,请重新输入")
复制代码

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. x,y,z = 6,5,4
  2. small =  x if x<y else y if y<z else z
  3. print(small)
复制代码
这样也可以:
  1. small = x if (x < y and x < z) else (y if y < z else z)
复制代码


2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
答:assert的用法,三元操作符的用法,elif是else if的简写

鱼哥的参考答案:http://bbs.fishc.com/thread-38269-1-1.html

  下车~




本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 16:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表