鱼C论坛

 找回密码
 立即注册

python学习小菜笔记——第八课(了不起的分支和循环2 )

热度 1已有 818 次阅读2014-8-13 13:50 |个人分类:Python学习

课堂笔记:


1.分支和循环

上节课,小甲鱼教大家如何正确的打飞机,其要点就是:判断和循环,判断就是该是不该做某事,循环就是持续做某事。

条件分支,也就是判断,我们习惯用到的是if else的搭配,而循环我们已经熟悉掌握了while语法的运用。

现在小甲鱼来考考大家:按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。

score = int(input('输入分数:'))

if  100>= score <=90:

print("A")

ifelse 90>score <=80:

print("B")

ifelse 80>score <=60:

print("C")

ifelse 60>score <=0:

print("D")



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

 

Python的缩进使用强制规定使得代码必须正确对齐,让程序员来决定else到底属于哪一个if。

限制你的选择从而减少了不确定性,Python鼓励你第一次就写出正确的代码。所以在Python中制造出“悬挂else”的问题是不可能的。

而且,强制使用正确的缩进,Python的代码变得整洁易读,这就是地球人都喜欢Python的原因。


3.条件表达式(三元操作符)

 

其实Python的作者(呃~还没死吖~),一向推崇简洁编程理念,所以很长一段时间Python都没有三元操作符这么个概念(因为他觉得三元操作符使得程序结构变复杂了),但是Python社区的小伙伴们表达了极大的诉求,所以最终Python的作者终于为Python加入了这个三元操作符。

x,y = 4,5

if x < y:

   small=x

else:

   small=y

 

small=x  if  x < y else y


4.断言(assert)

 

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。

一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。




课后作业:


0. if not (money < 100): 上边这行代码相当于?

如果money大于等于100则执行以下程序
  if money >= 100:


1. assert 的作用是什么?

assert关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。使用断言可以创建更稳定,品质更好且不易于出错的代码。

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。
什么情况下我们会需要这样的代码呢?当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”。
一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

  
2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

x, y, z = z, y, x


3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
  如果x<y,那么返回x的值。
如果x<y不成立,那么返回y的值
额~~~我是怎么在稀里糊涂的情况下编出这么一套的

这其实是 Python 的作者还没有为 Python 加入三元操作符之前,Python 社区的小伙伴们灵活的使用 and 和 or  搭配来实现三元操作符的功能,这里边有涉及到列表和切片的知识,这部分知识很快就会讲解,迫不及待的朋友可以先稍微预习下。


4. 你听说过成员资格运算符吗?
  判断元素是否被包含在对象中;
  
集合成员资格运算符:IN ,NOT IN.

IN 表示在集合中查询。
NOT IN表示不在集合中查询。

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

动动手:
  
0. 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率
  

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

score = int(input("please input your score:"))

if 80 > score >=60:

    print('c')

elif 100 >= score >=90:

    print('a')

elif 90> score>=80:

    print('B')

elif 60 > score>=0:

    print('D')

else:

    print('wrong number!')

        

  1. score = int(input('请输入一个分数:'))
  2. if 80 > score >= 60:
  3.     print('C')
  4. elif 90 > score >= 80:
  5.     print('B')
  6. elif 60 > score >= 0:
  7.     print('D')
  8. elif 100 >= score >= 90:
  9.     print('A')
  10. else:
  11.     print('输入错误!')


1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟C语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。
请将以下代码修改为三元操作符实现:


  1. x, y, z = 6, 5, 4
  2. if x < y:
  3.     small = x
  4.     if z < small:
  5.         small = z
  6. elif y < z:
  7.     small = y
  8. else:
  9.     small = z
复制代码

x, y, z = 6, 5, 4

if x < y:

    small = x

    small = x if z < x and y > z else y

else:

    small = z

print(small)

  1. small = x if (x < y and x < z) else (y if y < z else z)



路过

雷人
1

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

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

GMT+8, 2026-3-16 06:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部