鱼C论坛

 找回密码
 立即注册
查看: 1323|回复: 14

[技术交流] Python总结(第十章)【分支与循环】

[复制链接]
发表于 2020-3-30 11:03:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 WangJS 于 2020-4-11 15:10 编辑

Python总结(第十章)


10.分支与循环


(1)首次接触打飞机
到现在为止学习的东西并不支持我们做出打飞机这个游戏,但我们可以使用中文去理解一下这个游戏。


  1. 先加载背景音乐
  2. 单曲循环背景音乐
  3. 刷新我们自己的飞机
  4. 步数 = 0

  5. while true:(重复执行)
  6.         if 点击关闭按钮:
  7.                 退出程序

  8.         步数 += 1
  9.         if 步数==50:
  10.                 步数 = 0
  11.                 小飞机诞生
  12.         小飞机向下移动
  13.         刷新屏幕

  14.         if 用户鼠标移动:
  15.                 把我方飞机移到鼠标位置(我方飞机中心位置 = 用户鼠标置)
  16.                 屏幕刷新

  17.         if 我方飞机碰到小飞机:
  18.                 我方嗝屁,播放死亡音效
  19.                 我方飞机图案换为死亡图案
  20.                 打印“哈哈哈哈哈哈哈哈,你输了!!!”
  21.                 淡出背景音乐
复制代码


(2)判断你的分数等级
我们现在有两种种方案:

方案一:

  1. score = int(input('请输入您的分数:'))
  2. if 100 >= score >= 90:
  3.     print('A')
  4. if 90 > score >= 80:
  5.     print('B')
  6. if 80 > score >= 60:
  7.     print('C')
  8. if 60 > score >= 0:
  9.     print('D')
  10. if score < 0 or score > 100:
  11.     print('输入错误!')
复制代码


方案二:

  1. score = int(input('请输入您的分数:'))
  2. if 100 >= score >= 90:
  3.     print('A')
  4. elif 90 > score >= 80:
  5.     print('B')
  6. elif 80 > score >= 60:
  7.     print('C')
  8. elif 60 > score >= 0:
  9.     print('D')
  10. else:
  11.     print('输入错误!')
复制代码

这两个方案其实都能执行,但第一个方案会消耗我们更多的时间
如果你的得分是99分,第一个方案会判断5次;而第二个方案只会判断一次。这会养成很好的编程习惯,所以强烈建议使用第二个方案!!!

(3)悬挂else:

C语言的if和else是按大括号匹配的,所以会和你想象的不一样,Python只要按好tab就没有这些问题啦!
(还是Python好

(4)三元表达式:

有了这个三元操作符的条件表达式,你可以使用一条语句来完成以下四个行的条件判断和赋值操作:
  1. x, y = 4, 5
  2. if x < y:
  3.         small = x
  4. else:
  5.         small = y
复制代码

例子可以改进为:
  1. small = x if x < y else y
复制代码


#语法:x if 条件 else y

(5)断言(assert)

assert 表达式  当后面条件为真时什么都不执行,为假抛出AssertionError的异常

举个栗子:
  1. >>> assert 3 > 4
  2. Traceback (most recent call last):
  3.   File "<pyshell#1>", line 1, in <module>
  4.     assert 3 > 4
  5. AssertionError
复制代码
  1. >>> assert 4 > 3
  2. >>>
复制代码


当需要确保程序中的某个条件一定为真才能让程序正常工作的话,我们可以用Ta再程序中置入检查点,这样我们就可以在第一时间知道我们要修改哪里了!

(6)while循环

简单说下语法吧:
  1. while 条件:
  2.         循环体
复制代码


(7)for 循环

语法:
for 目标 in 表达式:
        循环体

栗子来啦:
  1. >>> me = 'WangJS'
  2. >>> for I in me:
  3.         print(I,end = ' ')

  4. W a n g J S
复制代码


  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚','wuqramy']
  2. >>> for each in friends:
  3.         print(each,' ',len(each))         #len,求目标长度

  4. 乘号  2
  5. xinhua202002  12
  6. qiuyouzhi  9
  7. 永远的渣滓  5
  8. 墨羽岚  3
  9. wuqramy  7
复制代码


(8)for小弟 之range

range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。

语法:
range( strat , stop , step=1)
strat 开始数字,不是必写,默认值为0
stop 结束数字,必写,输出不被包括
step 相邻两个数的差,不是必写,默认值为1

例子:
  1. >>> list(range(7))
  2. [0, 1, 2, 3, 4, 5, 6]
复制代码
  1. >>> for i in range(5):
  2.         print(i)

  3. 0
  4. 1
  5. 2
  6. 3
  7. 4
复制代码

  1. >>> for i in range(3,11):
  2.         print(i)

  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
复制代码

  1. >>> for i in range(1,10,2):
  2.         print(i)

  3. 1
  4. 3
  5. 5
  6. 7
  7. 9
复制代码


(9)break语句

用于中断一个循环(只中断自己所在的一层循环,不会影响两个tab前的大循环)。

  1. bingo = 'WangJS是帅哥'
  2. answer = input('请输入WangJS最想听的一句话:')

  3. while True:
  4.     if answer == bingo:
  5.         break
  6.     answer = input('抱歉,错了,请重新输入(答案正确才能退出游戏):')

  7. print('哎哟,帅哦~ 真聪明,这都能猜对')
复制代码

如果不输入正确答案就不会退出!

(10)continue语句

用于跳过这一轮循环(只跳过一轮!)。

  1. for i in range(10):
  2.     if i%2 != 0:
  3.         print(i)
  4.         continue
  5.     i += 2
  6.     print(i)
  7. 2
  8. 1
  9. 4
  10. 3
  11. 6
  12. 5
  13. 8
  14. 7
  15. 10
  16. 9
复制代码

如果i除以2余零,那么加2再输出,如果是奇数直接输出。


如果喜欢,别忘了评分订阅哟(传送门)!

喜欢别忘了.gif

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2020-3-31 19:31:06 | 显示全部楼层
沙发吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 19:32:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-7 09:15:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 08:48:08 | 显示全部楼层
从前天开始做,今天还没更新?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 09:15:50 | 显示全部楼层
冰河星云 发表于 2020-4-10 08:48
从前天开始做,今天还没更新?

今天肯定更
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 09:21:45 | 显示全部楼层
既然你打了广告,

我也要宣传一下嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 11:02:22 | 显示全部楼层
冰河星云 发表于 2020-4-10 09:21
既然你打了广告,

我也要宣传一下嘛

两个一样的诶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 18:36:04 | 显示全部楼层
楼主,为啥还不更新?(等了3天了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 14:50:15 | 显示全部楼层
上帝之手913 发表于 2020-4-10 18:36
楼主,为啥还不更新?(等了3天了)

更新了,不过还差一点,那个列表的小伙伴没写完,再等等吧
(大哥,我只是个小学生,好多的网课,更新慢理解一下呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 14:50:46 | 显示全部楼层
冰河星云 发表于 2020-4-10 08:48
从前天开始做,今天还没更新?

更新了,看下10楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 14:57:23 | 显示全部楼层
(3)悬挂else:

我没学过C只能大概说下,C语言if和else是就近匹配的,所以会和你想象的不一样,Python只要按好tab就没有这些问题啦!
(还是Python好)
C语言的if和else是按大括号匹配的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 15:05:35 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-11 14:57
C语言的if和else是按大括号匹配的。

能帮我改一下么?我没学过C语言欸
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 15:06:43 | 显示全部楼层
WangJS 发表于 2020-4-11 15:05
能帮我改一下么?我没学过C语言欸

我又不是版主,改不了……自己改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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