(P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue

文章目录

1.打飞机游戏逻辑

  • 任何发生的改变都需要屏幕刷新
加载背景音乐
播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0
 
while True:
    if 用户是否点击了关闭按钮:
        退出程序
    interval += 1
    if interval == 50:
        interval = 0
        小飞机诞生
    小飞机移动一个位置
    屏幕刷新
 
    if 用户鼠标产生移动:
        我方飞机中心位置 = 用户鼠标位置
        屏幕刷新
 
    if 我方飞机与小飞机发生肢体冲突:
        我方挂,播放撞机音乐
        修改我方飞机图案
        打印"Game Over"
        停止背景音乐,最好淡出

2.Python可以有效避免“悬挂else”

  • 现在小甲鱼来考考大家:
    按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。
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”?
    我们举个例子,初学C语言的朋友可能很容易被以下代码欺骗:
    C语言中,这样可能会造成else和if( hi > 7 )搭配在一起
if ( hi > 2 )
	if( hi > 7 )
		printf(“好棒!好棒!”);
else
	printf(“切~”);
  • 条件表达式(三元操作符)
语法:x if 条件 else y

有了这个三元操作符的条件表达式,你可以使用一条语句来完成以下的条件判断和赋值操作:

x, y = 4, 5

if x < y:
  small = x
else:
  small = y

例子可以改进为
small = x if x < y else y    #如果x小于y,则small等于x,否则等于y

3.断言(assert)

  • assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。
    eg:
    (P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue
    一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

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

>>> name = '小甲鱼'
>>> '鱼' in name
True
>>> '肥鱼' in name
False

4.while循环

  • while循环
while 条件:

                  循环体
  • for循环:表达式可以是列表,也可以是元组
语法:

for 目标 in 表达式:

     循环体
  • eg:
    end表示每次取FishC中一个字符及空格输出
    (P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue
    (P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue
  • range()函数
range( [strat,] stop[, step=1] )
这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1表示第三个参数的值默认值是1。
range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。

(P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue

  • break语句(结束本层循环)
bingo = '小甲鱼是帅哥'
answer = input('请输入小甲鱼最想听的一句话:')

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

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

(P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue

  • continue语句(当前位置结束本次循环,重新开始下次循环)
for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i += 2
    print(i)

(P8-P9)了不起的分支和循环:Python可以有效避免“悬挂else” ,断言(assert),while循环,break,continue

上一篇:Pytest(1)安装与入门


下一篇:C语言学习笔记之程序调试