Loading...
墨滴

瀋凣

2021/05/14  阅读:92  主题:极简黑

python笔记10

Python day10

1.分支结构

1.1 if

判断一个条件:
如果这个条件成立,就执行其包含的某条语句或某个代码块。

1.1.1 语法

if condition:
    statement(s)

什么叫做其包含?怎么做到其包含的呢?那当然是通过缩进啦~

1.1.2 举个栗子

if 3 < 5:
    print("我在里面~")
    print("我也在里面~")
print("我在外面")

执行结果:

我在里面~
我也在里面~
我在外面

当我们更改一下条件:

if 3 > 5:
    print("我在里面~")
    print("我也在里面~")
print("我在外面")

执行结果:

我在外面

1.2 if...else...

判断一个条件:
如果条件成立,就执行其包含的某条语句或某个代码块,
如果条件不成立,就执行另外的某条语句或某个代码块。

1.2.1 语法

if condition:
    statement(s)
else:
    statement(s)

1.2.2 举个栗子

if "赵泽润" == "大聪明":
    print("赵泽润是大聪明")
else:
    print("赵泽润不是大聪明")
“这就是大聪明”
“这就是大聪明”

很明显,赵泽润和大聪明一点都不像~
执行结果:

赵泽润不是大聪明

1.3 if...elif...elif...

判断多个条件:
如果第一个条件不成立,则继续判断第二个条件;
如果第二个条件不成立,则继续判断第三个条件……

1.3.1 语法

if condition1:
    statement(s)
elif confition2:
    statement(s)
elif condition3:
    statement(s)
...

1.3.2 例子

  • 根据用户输入的分数来划分等级:
    • [0~60) 属于F级;
    • [60~70) 属于D级;
    • [70~80) 属于C级;
    • [80~90) 属于B级;
    • [90~100) 属于A级;
    • [100] 属于S级。

学习elif之前:

score = input("请输入你的分数:")
score = int(score)

if 0 <= score < 60:
    print("F")
if 60 <= score < 70:
    print("D")
if 70 <= score < 80:
    print("C")
if 80 <= score < 90:
    print("B")
if 90 <= score < 100:
    print("A")
if score == 100:
    print("S")

学习elif之后:

score = input("请输入你的分数:")
score = int(score)

if 0 <= score < 60:
    print("F")
elif 60 <= score < 70:
    print("D")
elif 70 <= score < 80:
    print("C")
elif 80 <= score < 90:
    print("B")
elif 90 <= score < 100:
    print("A")
elif score == 100:
    print("S")

那么问题来了,这两个程序有什么区别呢?功能完全相同,而且第二个程序还多打了几个字母。

学习elif之前
学习elif之前
学习elif之后
学习elif之后

但是这个程序还有一个问题,用户输入的数字可能不在条件范围内,比如用户可能会输入像-1这样的明显不符要求的数字,这个问题该如何解决呢?

1.4 if...elif...else

表示上面所有的条件均不成立的情况下,执行某条语句或某个代码块。

1.4.1 语法

if condition1:
    statement(s)
elif condition2:
    statement(s)
elif condition 3:
    statement(s)
...
else:
    statement(s)

1.4.2 举个栗子

我们只需在之前的程序后面添上一个else就可以了:

score = input("请输入你的分数:")
score = int(score)

if 0 <= score < 60:
    print("F")
elif 60 <= score < 70:
    print("D")
elif 70 <= score < 80:
    print("C")
elif 80 <= score < 90:
    print("B")
elif 90 <= score < 100:
    print("A")
elif score == 100:
    print("S")
else:
    print("您的输入不符合规定,再见!")

1.5 条件表达式(三目运算符)

1.5.1 语法

条件成立时执行的语句 if condition else 条件不成立时执行的语句

1.5.2 举个栗子

>>> age = 16
>>> if age < 18:
        print("未满18岁,请选择儿童套餐!")
else:
        print("爱吃啥吃啥~")

用条件表达式来改写上面的代码:

>>> print("未满18岁,请选择儿童套餐!"if age < 18 else print("爱吃啥吃啥~")

看起来非常的奇怪对不对,但是奇怪有奇怪的好处:和传统的if...else...语句相比,条件表达式把原本的4行代码变成了1行代码,代码量明显减少了,并且作为表达式,它是可以出现在其他表达式的内部的。

练习:
比较两个数a,b的大小,并将较小的数赋值给一个叫做small的变量。

>>> a = 3
>>> b = 5
>>> if a < b:
        small = a
else:
        small = b

想一想,用条件表达式要怎么写

>>> small = a if a < b else b

那什么时候该用传统if...else...语句,什么时候用条件表达式呢?这取决于代码的复杂程度。
比如:

score = 66

if 0 <= score < 60:
    level = "F"
elif 60 <= score < 70:
    level = "D"
elif 70 <= score < 80:
    level = "C"
elif 80 <= score < 90:
    level = "B"
elif 90 <= score < 100:
    level = "A"
elif score == 100:
    level = "S"
else:
    level = "您的输入不符合规定,再见!"
print(level)

这是我们之前写的判断分数等级的代码,将它改写成用条件表达式的方式:

score = 66

level = ("F" if 0 <= score < 60 else
         "D" if 60 <= score < 70 else
         "C" if 70 <= score < 80 else
         "B" if 80 <= score < 90 else
         "A" if 90 <= score < 100 else
         "S" if score == 100 else
         "您的输入不符合规定,再见!")
print(level)

对比两组代码,虽然条件表达式的写法更为简洁,但是不如传统if...else...语句好理解,也不易于阅读。
写代码是为了解决问题而不是为了炫技,所以建议在面对复杂的结构的时候选择简单易懂的方式来解决。

1.6 分支结构的嵌套

在if语句中,可以把if...elif...else结构放在另一个if...elif...else结构中,形成嵌套。

举个栗子:

>>> age = 18
>>> isMale = True
>>> if age >= 18:
        if isMale:
            print("大老爷们儿爱吃啥吃啥")
        else:
            print("您是女生,请选择符合您气质的粉色微辣套餐~")
else:
        print("未满18岁,请选择儿童甜辣套餐!")
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/05/14  阅读:92  主题:极简黑

作者介绍

瀋凣