鱼C论坛

 找回密码
 立即注册
查看: 2095|回复: 0

[技术交流] 《零基础入门学习python》第八讲笔记

[复制链接]
发表于 2017-8-3 22:31:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 longguangyu 于 2017-8-3 23:38 编辑

《008了不起的分支和循环2》

      上节课回顾:如何正确的大飞机?其要点是判断和循环------①判断就是决定该不该做某事,而循环就是持续的做某事;②条件分支的判断用到的是if/else的搭配,而循环是while的运用。

一、小甲鱼考题
100分制,90分以上为A,80~90为B,60~80为C,60以下为D,写一个程序。当输入分数。自动转换为ABCD形式打印。
解决方案一:
  1. socre = int(input('请输入一个分数:'))
  2. if 100 >= score >= 90
  3.    print('A')
  4. if 90 > score >= 80
  5.    print('B')
  6. if 80 > score >= 60
  7.    print('C')
  8. if 60 > score >= 0
  9.    print('D')
  10. if score < 0 or socre > 0
  11.   print('输入错误')

复制代码
解决方案二:
  1. socre = int(input('请输入一个分数:'))
  2. if 100 >= score >= 90
  3.     print('A')
  4. else:
  5.       if 90 > score >= 80
  6.          print('B')
  7.       else:
  8.             if 80 > score >= 60
  9.                print('C')
  10.             else:
  11.                   if 60 > score >= 0
  12.                      print('D')
  13.                   else:
  14.                         print('输入错误')
复制代码
解决方案三:
  1. socre = int(input('请输入一个分数:'))
  2. if 100 >= score >= 90
  3.    print('A')
  4. elif 90 > score >= 80
  5.    print('B')
  6. elif 80 > score >= 60
  7.    print('C')
  8. elif 80 > score >= 0
  9.    print('D')
  10. else:
  11.       print('输入错误')
复制代码
比较哪一种方案更好一些??
       方案一中因为if的条件都是平行的,会产生多余的判断,占用内存时间,比如当输入分数98,打印出A后,程序还会继续去执行余下的条件判断;
方案二和三,比较简洁。

二、python可以有效避免"悬挂else"
1、什么叫"悬挂else"?
2、举例说明
  1. if (hi > 2)
  2.     if(hi > 7)
  3.        printf('好棒!')
  4. else:
  5.       printf('切~')
复制代码
      初学C语言容易被上边代码欺骗,在这个例子之中else是想与外层的if相配,事实上按照C语言就近原则,else是与内层的if相配,而python的缩进可以有效避免这个问题。


三、条件表达式(三元操作符)
1、平常所说的“XX元操作符”又可以读作“XX目操作符”。
2、说“XX元操作符”的意思是指这个操作符有XX个操作数,例如赋值号“=”,有两个操作数,就是二元操作符;当减号当作负号用时,就是一元操作符。
3、三元操作符语法: x  if 条件  else  if
举例:
  1. x,y = 4,5
  2. if x < y
  3.    samll = x
  4. else:
  5.   samll = y
复制代码
改进
  1. samll = x if x < y else if
复制代码


四、断言(assert)
1、assert这个关键字称为“断言”当这个关键字后面的条件为假时候,程序自动崩溃并抛出AssertionError的异常。
2、assert是条件分支的近亲,什么情况需要assert?当我们检测程序时用到,与其让错误的条件让后面的程序出现莫名的崩溃,不如在错误条件出现的瞬间自爆。
3、一般来说可以用assert在程序中置入检查点,当需要确保程序中某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
举例:
QQ截图20170803233827.png



评分

参与人数 1鱼币 +9 收起 理由
小甲鱼 + 9 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 05:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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