鱼C论坛

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

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

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

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

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

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

Python总结(第十章)


10.分支与循环


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

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

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

        步数 += 1
        if 步数==50:
                步数 = 0
                小飞机诞生
        小飞机向下移动
        刷新屏幕

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

        if 我方飞机碰到小飞机:
                我方嗝屁,播放死亡音效
                我方飞机图案换为死亡图案
                打印“哈哈哈哈哈哈哈哈,你输了!!!”
                淡出背景音乐

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

方案一:
score = int(input('请输入您的分数:'))
if 100 >= score >= 90:
    print('A')
if 90 > score >= 80:
    print('B')
if 80 > score >= 60:
    print('C')
if 60 > score >= 0:
    print('D')
if score < 0 or score > 100:
    print('输入错误!')

方案二:
score = int(input('请输入您的分数:'))
if 100 >= score >= 90:
    print('A')
elif 90 > score >= 80:
    print('B')
elif 80 > score >= 60:
    print('C')
elif 60 > score >= 0:
    print('D')
else:
    print('输入错误!')
这两个方案其实都能执行,但第一个方案会消耗我们更多的时间
如果你的得分是99分,第一个方案会判断5次;而第二个方案只会判断一次。这会养成很好的编程习惯,所以强烈建议使用第二个方案!!!

(3)悬挂else:

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

(4)三元表达式:

有了这个三元操作符的条件表达式,你可以使用一条语句来完成以下四个行的条件判断和赋值操作:
x, y = 4, 5
if x < y:
        small = x
else:
        small = y
例子可以改进为:
small = x if x < y else y

#语法:x if 条件 else y

(5)断言(assert)

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

举个栗子:
>>> assert 3 > 4
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    assert 3 > 4
AssertionError
>>> assert 4 > 3
>>>

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

(6)while循环

简单说下语法吧:
while 条件:
        循环体

(7)for 循环

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

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

W a n g J S

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

乘号  2
xinhua202002  12
qiuyouzhi  9
永远的渣滓  5
墨羽岚  3
wuqramy  7

(8)for小弟 之range

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

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

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

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

3
4
5
6
7
8
9
10
>>> for i in range(1,10,2):
        print(i)

1
3
5
7
9

(9)break语句

用于中断一个循环(只中断自己所在的一层循环,不会影响两个tab前的大循环)。
bingo = 'WangJS是帅哥'
answer = input('请输入WangJS最想听的一句话:')

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

print('哎哟,帅哦~ 真聪明,这都能猜对')
如果不输入正确答案就不会退出!

(10)continue语句

用于跳过这一轮循环(只跳过一轮!)。
for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i += 2
    print(i)
2
1
4
3
6
5
8
7
10
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-11-23 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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