了不起的分支和循环

打飞机游戏

加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生

while True:
    if 用户是否点击了退出按钮:
        退出程序


    小飞机诞生
    小飞机移动一个位置
    屏幕刷新


    if 用户鼠标产生移动:
        我方飞机中心位置---用户鼠标位置
        屏幕刷新


    if 我方飞机与小飞机发生肢体冲突:
        我方挂,播放撞机音乐
        修改我方飞机图案
        打印"game over"
        停止背景音乐,最好淡出

#但这样会屏幕会出现很多密密麻麻的飞机,so修改下

加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生

while True:
    if 用户是否点击了退出按钮:
        退出程序

    interval += 1
    if interval == 50   #不能设置太大,不然飞机出现得很慢,显得很卡
        小飞机诞生


    小飞机移动一个位置
    屏幕刷新


    if 用户鼠标产生移动:
        我方飞机中心位置---用户鼠标位置
        屏幕刷新


    if 我方飞机与小飞机发生肢体冲突:
        我方挂,播放撞机音乐
        修改我方飞机图案
        打印"game over"
        停止背景音乐,最好淡出

小程序

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

method1.py

#有点浪费CPU的时间,method1 每次输入完一个分数,都要执行5次 if

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('输入错误!')

method2.py

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

method3.py

#实际上和 method2 是一样的,但method3 简洁一些,用到的elif == else if

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('输入错误!')
悬挂else

从上面可以看出,python可以有效避免悬挂else(对python来说是不可能的,python强制使用缩进格式)

三元操作符
x, y = 4, 5
if x < y:
    small = x
else:
    small = y

上面的例子可以直接用三元操作符搞定 small = x if x < y else y

断言(assert)
>>> assert 3>4
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    assert 3>4
AssertionError
>>> assert 3<4

for循环

for循环也称计数器循环,虽然说Python是由C语言编写而来的,但是Ta的for循环跟C语言的for循环不太一样,Python的for循环显得更为智能和强大!

这主要表现在Ta会自动调用迭代器的next()方法,会自动捕获StopIteration异常并结束循环,所以这更像是一个具有现代化气质的for循环结构。

语法:
for 目标 in 表达式: (目标是每次迭代的变量,表达式是一个列表也可以是元组)
循环体

>>> favourite = 'fishc'
>>> for i in favourite:
    print(i,end='')


fishc
>>> favourite = 'FishC'
>>> for i in favourite:
    print(i,end=' ')



F i s h C 

>>> member = ['小甲鱼','小布丁','黑夜','迷途','静怡']
>>> member = ['小甲鱼''小布丁''黑夜''迷途''静怡']
SyntaxError: invalid character in identifier
>>> member = ['小甲鱼','小布丁','黑夜','迷途','静怡']
>>> for each in member:
    print(each, len(member))


小甲鱼 5
小布丁 5
黑夜 5
迷途 5
静怡 5
>>> for each in member:
    print(each, len(each))


小甲鱼 3
小布丁 3
黑夜 2
迷途 2
静怡 2
>>> 

while循环

语法:
while 条件
循环体

python的while循环和if条件分支有点类似,在条件为真的时候执行某一段代码,不同的是条件为真,while就会一直重复执行这段代码,把这段代码称作循环体。


range()

for循环其实还有一个小伙伴:range()内建函数

语法:range( [strat,] stop[, step=1] )

  • 这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
  • step=1表示第三个参数的值默认值是1。
  • range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列
>>> range(5) #一个参数
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
    print(i)


0
1
2
3
4
>>> for i in range(2,9)  #两个参数
SyntaxError: invalid syntax
>>> for i in range(2,9):
    print(i)


2
3
4
5
6
7
8
>>> for i in range(1,10,2):  #三个参数,从1-10不包括10,数字之间隔2

print(i)


1
3
5
7
9

两个关键的语句

break&continue
break:中断循环,并跳出循环
continue:中断本轮循环,跳到判断条件处,若条件成立则进行下一轮循环


代码例子

bingo = '小甲鱼是帅哥'
answer = input('请输入小甲鱼最想听的一句话:')

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

print('哎哟,帅哦~')
print('您真是小甲鱼肚子里的蛔虫啊^_^')

运行
请输入小甲鱼最想听的一句话:ljjl
抱歉,错了,请重新输入(答案正确才能退出游戏):lajin
抱歉,错了,请重新输入(答案正确才能退出游戏):小甲鱼好帅
抱歉,错了,请重新输入(答案正确才能退出游戏):小甲鱼是帅哥
哎哟,帅哦~
您真是小甲鱼肚子里的蛔虫啊^_^

代码例子

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值