课时8 了不起的分支和循环2

目录

一、课堂小练习

二、悬挂else

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

四、断言

五、课后题


一、课堂小练习

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

  • method1
score = 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 score > 100:
    print("输入错误!")
  • method2
score = 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("输入错误!")
  • method3
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("输入错误!")

三种方法若都对99进行成绩判断,法一在第一个if语句后输出“A”之后,还会进行接下来的if循环,直到程序结束。而法二和法三,在第一个if语句判断之后,便结束比较。可见虽然是很简单的例子,但就输入99来说,假设第一次判断会消耗一个CPU的时间,那么第一种方法比第二和第三种方法多消耗了400%的时间!!!

二、悬挂else

Python强制使用缩进,将解决悬挂else的问题

if ( hi > 2):
    if (hi > 7):
        printf("好棒!")
else:
    printf("且")

例如,虽然else很想和外层的if匹配,但事实上按照C语言的就近匹配原则这个else是属于内层if的。在Python中强制使用缩进,所以在Python中制造出悬挂else的问题是不可能的。

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

x, y = 4, 5
if x < y:
    small = x
else:
    small = y

三元操作符

a = x if 条件 else y (表示当条件为True的时候,a的值赋值为x,否则赋值为y。

四、断言

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

我们可以用assert来检查程序,在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话。

五、课后题

测试题:
0. if not (money < 100): 上边这行代码相当于?
1. assert 的作用是什么?
2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?
4. 你听说过成员资格运算符吗?

答案

0. if  money >= 100:

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

我们可以用assert来检查程序,在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话。

2.x,y,z = z,x,y

3.

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

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

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

复制代码

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

复制代码

答案

0.

1.

猜你喜欢

转载自blog.csdn.net/qq_37907454/article/details/86494588