【Python学习笔记Day08】2.6 分支与循环二

1. 问题——分数等级问题

按照100分制,90分以上成绩为A,80-90分成绩为B,70-80分之间为C,60-70分之间为D,60分一下为E,当输入用户的分数,判断ABCDE打印输出

1.1 方法一使用if

cpu代码效率执行低

score = int(input("请输入用户的一个分数:"))

if 90<= score <= 100:
    print("A")

if 80<= score < 90:
    print("B")

if 70<= score < 80:
    print("C")

if 60<= score < 70:
    print("D")

if 0<= score < 60:
    print("E")

if score <0 or score > 100:
    print("输入错误!")

第一种判断完第一个之后,还需要执行后续的判断,浪费cpu的时间

1.2 方法二 if … else
score = int(input("请输入用户的一个分数:"))
if 90<= score <= 100:
    print("A")
else:
    if 80<= score < 90:
        print("B")
    else:        
        if 70<= score < 80:
            print("C")
        else:
            if 60<= score < 70:
                print("D")
            else:
                if 0<= score < 60:
                    print("E")
                else:
                    print("输入错误!")
1.3 方法三 if elif
score = int(input("请输入用户的一个分数:"))
if 90<= score <= 100:
    print("A")
elif 80<= score < 90:
    print("B")
elif 70<= score < 80:
    print("C")
elif 60<= score < 70:
    print("D")
elif 0<= score < 60:
    print("E")
else:
    print("输入错误!")

判断完第一个条件时,如果成立,则直接退出

针对第三个程序,根据一般的统计规律,70-80的分数一般比较集中,因此根据统计规律,
可以将70-80的范围内的条件放在最前面,以达到cpu高效的利用。

2.python可以有效的避免悬挂else,

#悬挂else

    if()
        if()
            printf();
    else
        printf();

C语言的的语法会有悬挂的错误,在python中不会存在,因为python是通过缩进来控逻辑块的

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

三元操作符可以将一个条件判断语句改为一条语句
格式为:变量名 = 等式一 (if 条件) else 等式二

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

上面的例子可以改为:

small = x if x<y else y

4. assert 断言语句

当这个关键词后的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

assert 3>4 #会提示AssertiongError
一般来说,我们可以用Ta在程序中置入检查点,当需要确保程序中的某一个条件一定为真才能让程序正常工作时,assert关键测就非常有用了

例如,当一个程序接口只希望输入为数字,但输入其他无效时,即可以使用断言assert语句
一般用于测试程序

#################################################################################################

5. 练习题:

5.1 if not(test < 100):相当于

#if test >= 100:

5.2 假设有x =1, y = 2, z = 3, 情快速交换三个变量的值:
x = 1
y = 2
z = 3
print(x,y,z)
x,y,z = z,x,y
print(x,y,z)

运行结果:
在这里插入图片描述

5.3 以下表达式实现什么功能

(x<y and [x] or [y])[0] 实现了什么功能?
#这是三元操作符,涉及到切片和列表的知识
#灵活使用and 和 or 搭配使用三元操作符

5.4 成员资格运算符:in

#python 有一个成员资格运算符:in
#用于检查是否在列表里,如果在序列中,则返回True,否则返回False
#经常用于for in中

name = 'weivid'
print('we' in name) #True
print('wvi' in name) #Flase
print('h' in name) #False

运行结果:
在这里插入图片描述

发布了105 篇原创文章 · 获赞 71 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/vivid117/article/details/104295415