马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 longguangyu 于 2017-8-3 23:38 编辑
《008了不起的分支和循环2》
上节课回顾:如何正确的大飞机?其要点是判断和循环------①判断就是决定该不该做某事,而循环就是持续的做某事;②条件分支的判断用到的是if/else的搭配,而循环是while的运用。
一、小甲鱼考题
100分制,90分以上为A,80~90为B,60~80为C,60以下为D,写一个程序。当输入分数。自动转换为ABCD形式打印。
解决方案一:socre = 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 socre > 0
print('输入错误')
解决方案二:socre = 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('输入错误')
解决方案三:socre = int(input('请输入一个分数:'))
if 100 >= score >= 90
print('A')
elif 90 > score >= 80
print('B')
elif 80 > score >= 60
print('C')
elif 80 > score >= 0
print('D')
else:
print('输入错误')
比较哪一种方案更好一些??
方案一中因为if的条件都是平行的,会产生多余的判断,占用内存时间,比如当输入分数98,打印出A后,程序还会继续去执行余下的条件判断;
方案二和三,比较简洁。
二、python可以有效避免"悬挂else"
1、什么叫"悬挂else"?
2、举例说明if (hi > 2)
if(hi > 7)
printf('好棒!')
else:
printf('切~')
初学C语言容易被上边代码欺骗,在这个例子之中else是想与外层的if相配,事实上按照C语言就近原则,else是与内层的if相配,而python的缩进可以有效避免这个问题。
三、条件表达式(三元操作符)
1、平常所说的“XX元操作符”又可以读作“XX目操作符”。
2、说“XX元操作符”的意思是指这个操作符有XX个操作数,例如赋值号“=”,有两个操作数,就是二元操作符;当减号当作负号用时,就是一元操作符。
3、三元操作符语法: x if 条件 else if
举例:x,y = 4,5
if x < y
samll = x
else:
samll = y
改进samll = x if x < y else if
四、断言(assert)
1、assert这个关键字称为“断言”当这个关键字后面的条件为假时候,程序自动崩溃并抛出AssertionError的异常。
2、assert是条件分支的近亲,什么情况需要assert?当我们检测程序时用到,与其让错误的条件让后面的程序出现莫名的崩溃,不如在错误条件出现的瞬间自爆。
3、一般来说可以用assert在程序中置入检查点,当需要确保程序中某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
举例:
|