|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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关键字就非常有用了。
举例:
|
评分
-
查看全部评分
|