跟着NOAI考纲学Python,学完就能考,第4课

跟着NOAI考纲学Python,学完就能考,第4课

本文核心观点
NOAI 自学 Python 系列第 4 课:if / elif / else 条件判断、布尔表达式、嵌套判断与短路求值。

跟着NOAI考纲学Python,学完就能考,第4课

每天一个知识点,带你自学NOAI,加入我们吧~

上节课电脑学会了接收输入、做运算。但有个问题——不管你输入什么,它都做同样的事。这节课,让电脑学会"看情况办事"。

if:满足条件才执行

最简单的条件判断:if。意思就是"如果……就……"。

score = 90
if score >= 60:
    print("及格了")

及格了

拆开看:

if score >= 60: 是条件。注意末尾有个冒号

下面缩进的那行 print("及格了") 是条件成立时要执行的代码

缩进是4个空格,Python靠缩进来判断"哪些代码属于if"

如果把score改成50:

score = 50
if score >= 60:
    print("及格了")
print("程序结束")

程序结束

条件不成立,缩进里的代码被跳过了。但最后一行print("程序结束")没有缩进,它不属于if,所以照常执行。

if-else:二选一

很多时候我们想说"如果……就……否则就……"。用else

score = int(input("输入你的分数:"))
if score >= 60:
    print("及格了")
else:
    print("没及格,继续加油")

输入80:

输入你的分数:80
及格了

输入45:

输入你的分数:45
没及格,继续加油

if和else只会走其中一个——条件成立走if,不成立走else,不可能两个都走。

if-elif-else:多个条件

如果不止两种情况呢?比如想把分数分成A、B、C三档。用elif(就是else if的缩写):

score = int(input("输入分数:"))
if score >= 90:
    print("A")
elif score >= 60:
    print("B")
else:
    print("C")

输入85:

输入分数:85
B

拆开看执行过程:

先看 score >= 90?85不满足,跳过

再看 score >= 60?85满足,执行 print("B")

已经找到满足的了,后面的else直接跳过,不再检查

if-elif-else从上往下检查,一旦有一个条件成立就执行那个分支,剩下的全部跳过。

elif可以写很多个:

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

比较运算符

if后面的条件要用比较运算符来写。Python有6个:

运算符 含义 例子
> 大于 5 > 3 → True
< 小于 5 < 3 → False
== 等于 5 == 5 → True
!= 不等于 5 != 3 → True
>= 大于等于 5 >= 5 → True
<= 小于等于 3 <= 5 → True

比较运算的结果是布尔值——要么是 True(成立),要么是 False(不成立)。

print(5 > 3)
print(5 == 3)
print(5 != 3)

True
False
True

新手最容易犯的三个错

错误1=== 搞混

# 错误写法
if score = 60:    # 这是赋值,不是比较!会报错

# 正确写法
if score == 60:   # 两个等号才是"判断相等"

= 是赋值(把右边的值存进左边),== 才是比较(判断两边是不是相等)。

错误2忘了冒号

# 错误写法
if score >= 60     # 少了冒号,报错

# 正确写法
if score >= 60:    # 冒号不能丢

错误3缩进不对

# 错误写法
if score >= 60:
print("及格了")     # 没缩进,报错

# 正确写法
if score >= 60:
    print("及格了")  # 缩进4个空格

Python对缩进非常严格。if/elif/else后面的代码必须缩进,而且同一个代码块里的缩进要一致。建议统一用4个空格。

实战:判断奇偶

把上节课学的取余运算和这节课的if-else结合起来:

num = int(input("输入一个整数:"))
if num % 2 == 0:
    print("偶数")
else:
    print("奇数")

输入一个整数:7
奇数

num % 2 就是除以2取余数。余数是0说明能被2整除,就是偶数。

动手试试

练习1:预测输出

下面这段代码,输出什么?

x = 15
if x > 20:
    print("大")
elif x > 10:
    print("中")
else:
    print("小")

提示:从上往下检查条件,15 > 20?15 > 10?

练习2:找bug

这段代码想判断年龄是否满18岁,但运行就报错。哪里出了问题?

age = int(input("你的年龄:"))
if age >= 18
    print("成年了")
else
    print("未成年")

提示:回看"新手最容易犯的三个错"里的第二个。

练习3:写代码

写一个程序:输入一个整数,如果它能被3整除就输出"Fizz",能被5整除就输出"Buzz",既能被3又能被5整除就输出"FizzBuzz",都不能就输出这个数本身。

提示:用 % 判断能不能整除,注意if-elif-else的顺序——"既能被3又能被5整除"要放在最前面判断。

自己先想,想完了香农平台上写代码跑一遍验证。

去平台上手写代码

学到这里,你的程序已经能"思考"了——接收输入,判断条件,给出不同的回应。回顾一下:

if / elif / else — 根据条件走不同的路

比较运算符 — > < == != >= <=

这篇文章讲的是香农NOAI学习平台"Python基础"模块的第四课。平台上有更多的练习题,写完代码点运行,对不对立刻就知道。

香农NOAI学习平台
地址:shannon.arpa.school
微信扫码登录就能用,免费。
找到「Python基础」→「条件判断」,从第一道题开始写。

下一篇讲循环——让电脑不光会选择,还能重复做同一件事,一行代码干一百遍的活。

微信二维码

扫码备注【NOAI】加交流群