
Hello,everyone。 我是小K,很高兴又和大家见面了

现在, 请大家将屏幕调整成全屏模式,与小K 一起继续饱览 Python 河山。【江湖秘籍:Windows 系统:F11(或Fn+F11);Mac 系统:Control+Command+F。】

在上一关, 小K 和你一起通过了 Python 的数据大关——通过三种数据类型(字符串、整数和浮点数)的相互转换,探究了美国队长的洞察计划, 将代码成功执行。

但是,在 Python 的江湖里, 光正确探究洞察计划中的数据还是不够的。还需要正确的与 Python 沟通,让 Python 准确地执行你的命令。




比方说, 我想让小爱同学在每天上午关上家门后开始扫地。如果我只说:“小爱同学,开始扫地”,那么,由于缺少关门的前提条件, 无论你关不关门, 小爱机器人都会扫地。

所以,我们下的命令应该是这样:小爱同学,如果上午我关上了门,你就扫地。

那么,这个下命令就变成了如果…就…逻辑,就是与计算机沟通的思维——条件判断, 目的就是让计算机知道:在什么条件下,开始做什么。




对于 Python 也是这样,Python 之所以能完成自动化任务,比如自动打卡,自动抓取网络热词,自动下载大片,就是因为它可以执行条件判断。

下面,小K要给大家讲一个《X战警:逆转未来》的故事,来 get 一下逻辑判断的趣味性。

请同学们运行一下左边代码框的选项。(待程序运行完成后,在代码框右侧输入你的选择,并按回车键!)

编程题
已完成课堂练习
main.py
54
1
import time
2
3
print('如果你想拥有读心术,那选择X教授')
4
5
time.sleep(2)
6
7
print('如果你想干扰地球磁场,那选择万磁王')
8
9
time.sleep(2)
10
11
print('如果你想急速自愈能力,野兽般的感知能力,那选择金刚狼')
12
13
time.sleep(2)
14
15
print('如果你想拥有念力移位和心电感应,那选择凤凰女')
16
17
time.sleep(2)
18
19
print('如果你想拥有能随意控制气候的能力,那选择暴风女')
20
21
time.sleep(2)
22
23
print('那么,如果让你来选择的话,你想选择哪个人物?')
24
25
time.sleep(2)
26
27
print('请在以下六个选项【1 X教授 ;2 万磁王;3 金刚狼 ;4 凤凰女;5 暴风女 ;】中,选择你最想成为的人物吧!')
28
29
time.sleep(3)
30
31
answer=input('请将对应数字输入在冒号后: ')
32
33
if answer=='1':
34
print('我是教授,通过其能力剥夺并控制他人的思维同时操纵他人的行动。')
35
time.sleep(3)
36
37
elif answer=='2':
38
print('我X万磁王,通过干扰地球磁场达到飞行的能力。')
39
time.sleep(3)
40
41
elif answer=='3':
42
print('我是金刚狼,天生双臂长有可伸出体外的利爪')
43
time.sleep(3)
44
45
elif answer=='4':
46
print('我是凤凰女,预知未来,并能抗拒他人的精神攻击。')
47
time.sleep(3)
48
49
elif answer=='5':
50
print('我是暴风女,被称作天气女神。')
51
time.sleep(3)
52
53
else:
54
print('没有这个选项,请输入1-5的整数数字哦~')
重做
终端
python main.py
如果你想拥有读心术,那选择X教授
如果你想干扰地球磁场,那选择万磁王
如果你想急速自愈能力,野兽般的感知能力,那选择金刚狼
如果你想拥有念力移位和心电感应,那选择凤凰女
如果你想拥有能随意控制气候的能力,那选择暴风女
那么,如果让你来选择的话,你想选择哪个人物?
请在以下六个选项【1 X教授 ;2 万磁王;3 金刚狼 ;4 凤凰女;5 暴风女 ;】中,选择你最想成为的人物吧!
请将对应数字输入在冒号后: 3
我是金刚狼,天生双臂长有可伸出体外的利爪
答案提示
取消
再试一次


亲爱的异能人,你看到没?这就是条件判断如果…就…逻辑产生的魔法。那么,这个条件判断的代码,要怎么码呢?
条件判断

在 Python 的江湖中,条件判断语句总共有三种表现形式, 我们从最基本的单向判断:if 语句开始。
单向判断:if




单向判断:if 代表什么呢?你会发现, 上面的故事中, 有一个如果……就。那么,如果我们要用代码来实现出来的话,就可以用条件判断语句中的单向判断:if 来实现。

运行一下下面代码:

编程题
已完成课堂练习
main.py
8
1
# 为钱包赋值
2
money = 1000
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
# 结果:显示‘你去吃日料’的结果
8
print('金刚狼带凤凰女去吃日料')
重做
终端
python main.py
金刚狼带凤凰女去吃日料
答案提示
取消
再试一次


那么,这段代码是如何实现的呢?

首先,第一行代码,用“=”对当前情况进行赋值:将钱包 1000 赋值给变量 money。

第二步,确定 if 条件: 如果钱包 money 的值>=1000, 就执行冒号后的下一行命令。

第三步,用 print()命令打印出结果, 你去吃日料吧,带上钱,带上女朋友。搜嘎,原来 if 语句的单向判断如此简单。




在这里,你会发现,在 if 语句的冒号后面,print()语句的前面,出现了几个空格,这又是为什么呢?




江湖秘籍:在编程武林中,空格不叫空格,而是叫缩进。就如同我们写报告一样,每段开始都要空两格。

对于 Python 而言,缩进是一种语法规则,它会帮助 Python 更好的分清代码结构与层次,计算机更好的执行 Python 代码。【注:缩进是四个空格或一个 Tab 键,且Tab 键和四个空格不能混用,千万注意!千万注意!】

在 if 条件语句中,缩进是不需要手动按空格的。当你用英文输入法后按回车,我们的开发工具(用来编写 Python 代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。

此时,被缩进的所有内容被称为 if 语句内的代码块。

这就表示: 如果满足 if 条件,计算机就会执行 if 语句内的代码块。(缩进的所有内容)

请运行一下面代码,看看运行结果是什么。(请不要更改代码,直接点击运行键,当终端出现红色报错提醒后,点击跳过本题)

编程题
已跳过课堂练习
main.py
8
1
# 为钱包赋值
2
money = 1000
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
# 结果:显示‘金刚狼带凤凰女去吃日料’的结果
8
print('金刚狼带凤凰女去吃日料')
重做
终端
python main.py
File "main.py", line 9
print('金刚狼带凤凰女去吃日料')
^
IndentationError: expected an indented block
答案提示
取消
再试一次


你看,Python 是不是又向你吐槽了。 IndentationError: expected an indented block(缩进错误)

这是由于,当我们把缩进去掉时,print 语句就已经不在 if 语句内了, if 语句与 print 语句已经成为了两个不同的代码,平行的兄弟关系。

这样就导致 if 语句内没有执行的代码,也就是无论满足还是不满足代码,都没有内容执行,这个条件也就没有存在的意义了。

单选
现在,我们来检验一下刚才学习的成果。下面关于 if 语句的表述,哪个选项说法是正确的?
A:如果想用代码实现打印功能, 使用 if 语句
B:if 条件的含义是 如果…就
C:if 语句冒号后面的内容,不需要缩进。

下面,我来总结一下单向判断 if 语句




好了,现在如果没有1000块钱,金刚狼还能带凤凰女去吃日料吗?

请修改下方代码,只把 money=1000, 替换成 money=500, 并点击运行,看看会出现什么结果。

代码片段
xxxxxxxxxx
1
# 为钱包赋值
2
money = 1000
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
# 结果:显示‘金刚狼带凤凰女去吃日料’的结果
8
print('金刚狼带凤凰女去吃日料')

江湖秘籍:
1、符号要在英文输入法下输入;
2、检查条件判断语句下是否缩进;
3、只要显示运行通过,就请点击回车键继续课程。
1、符号要在英文输入法下输入;
2、检查条件判断语句下是否缩进;
3、只要显示运行通过,就请点击回车键继续课程。

编程题
已完成课堂练习
main.py
8
1
# 为钱包赋值
2
money = 500
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
# 结果:显示‘你去吃日料’的结果
8
print('金刚狼带凤凰女去吃日料')
重做
终端
python main.py
答案提示
取消
再试一次


这时, 你可能会想,没有结果,怎么也不向我吐槽啊?到底对不对啊?

首先,money = 500 是 if 语句 判断的前提条件, 然而不满足 money>=1000 这个条件,所以不会执行条件下 print('金刚狼带凤凰女去吃日料')语句。

小K告诉你,计算机是一步一步往下执行代码的。所以,当第一行赋值语句不满足 if 语句条件时,Python 就会这么思考:条件不满足,无法执行 if 语句内的代码块,从而直接跳过。




也就是说,money 只有 500,没有满足 1000 的 if 条件,if 条件内的代码块无法执行, 金刚狼自然就不能带凤凰女去吃日料了。

吃不了日料,可以去吃 KFC 呀。

那么,如果 money 达不到 1000,金刚狼带凤凰女去吃 KFC;money 达到 1000,金刚狼带凤凰女去吃日料。这样,在 Python 江湖中如何实现呢?
双向判断:if…else…




在 Python 江湖中,我们可以利用 if 的双向判断形式 if…else…去实现。

编程题
已完成课堂练习
main.py
12
1
# 为钱包赋值
2
money = 1000
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
print('金刚狼带凤凰女去吃日料')
8
9
# 条件:当不满足if条件,执行else条件下语句
10
else:
11
12
print('金刚狼带凤凰女去吃KFC')
重做
终端
python main.py
金刚狼带凤凰女去吃日料
答案提示
取消
再试一次


是不是,有种备选的感觉。做好了万全准备,如果不满足条件时,我们要怎么办?

Python 提供了 if…else…语句,让我们有了另一种选择。如果…不满足,就…




if…else…其实就是二选一,满足条件执行 if 里面的代码块,不满条件执行 else 代码块。

好了,下面我们做个题来巩固一下 if…else…的知识点:

昨天晚上,小K 计划去锻炼,所以她打算了一下,如果体重超过90斤,她就每天去跑步;如果体重不超过90斤,她就每天去散步。结果称了称,98斤。

请在下面代码框里用 if...else...把小K 锻炼判断语句写出来。
【要点提示】
1、为小K的体重 weight 赋值;
2、开始判断,如果 if 体重超过90斤(包含90斤),打印结果她就每天去跑步,否则 else,打印结果她就每天去散步;
3、if 和 else 语句后需跟英文冒号:
【要点提示】
1、为小K的体重 weight 赋值;
2、开始判断,如果 if 体重超过90斤(包含90斤),打印结果她就每天去跑步,否则 else,打印结果她就每天去散步;
3、if 和 else 语句后需跟英文冒号:

编程题
已完成课堂练习
main.py
9
1
weight = 100
2
if weight >=90:
3
4
print('她就每天去跑步')
5
6
# 条件:当不满足if条件,执行else条件下语句
7
else:
8
9
print('她就每天去散步')
重做
终端
python main.py
她就每天去跑步
答案提示
取消
再试一次


下面看一下小K 自己写的代码,和你们给我写的一样吗?

编程题
已完成课堂练习
main.py
14
1
# 赋值语句:为体重赋值
2
weight = 98
3
4
# 条件:满足体重超过90(包含90)
5
if weight>=90:
6
7
# 结果:显示‘跑步’的结果
8
print('她就每天去跑步')
9
10
# 条件:当赋值不满足if条件时,执行else下的命令
11
else:
12
13
# 结果:显示‘散步’的结果
14
print('她就每天去散步')
重做
终端
python main.py
她就每天去跑步
答案提示
取消
再试一次


下面和小K 来总结一下 if…else…语句的知识点。




代码告一段落,我们在回到金刚狼带凤凰女吃饭的问题上。

如果此时钱包里的钱是 800 块钱, 凤凰女想去吃披萨,那这个问题应该怎么处理呢?

啥?吃披萨,到底要吃啥?Python 如何实现呢?
多向判断:if…elif…else…




江湖秘籍:解决问题前,先梳理一下逻辑思路。

通过上面分析,我们可以得知:如果钱包里的钱多于 1000(包含1000),金刚狼带凤凰女去吃日料;如果钱包里的钱多于 800(包含800),金刚狼带凤凰女去吃披萨;如果钱包里的钱比 800 少,金刚狼带凤凰女去吃 KFC。

这里就有了三个如果条件。

那么在判断 3 个和 3 个以上的条件是,我们就需要使用 Python 中if…elif…else…语句。




那么在判断 3 个和 3 个以上的条件是,我们就需要使用 Python 中if…elif…else…语句。

编程题
已完成课堂练习
main.py
16
1
# 为钱包赋值
2
money = 999
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if money>=1000:
6
7
print('金刚狼带凤凰女去吃日料')
8
9
# 条件:如果有800-1000块钱之间(包含800块)
10
elif money>=800:
11
12
print('金刚狼带凤凰女去吃披萨')
13
14
#不满足条件
15
else:
16
print('金刚狼带凤凰女去吃KFC')
重做
终端
python main.py
金刚狼带凤凰女去吃披萨
答案提示
取消
再试一次


看,多向 if…elif…else 是不是很好理解?

第一步,第一行赋值,会自上而下的顺序挨个试一遍,看自己满足哪个条件。

第二步,满足哪个条件,就执行哪个条件里面对应的代码块,不满足条件就继续往后试,试出结果为止。

江湖秘籍:elif 与 if 本质一样,也就是其他条件的意思, elif 后面直接写条件。

在上面代码中 money=999 会对下面 if elif else 条件逐渐尝试,看自己满足哪个条件,满足哪个条件,就执行哪个条件下的代码块。

下面,请你动动手完成下面题目。

今天晚上,小K 要加班了。如果加班时间超过 10 点(包含10点),小K 就打车回家;如果加班时间在 8 点-10 点之间(包含8点),小K 坐地铁回家;如果加班时间早于 8 点,小K 骑单车回家。

提示:
(1)为小K的加班时间赋值。
(2)条件1,如果加班时间>=10,小K打车回家。
(3)条件2,如果8<=加班时间<10,小K坐地铁回家。
(4)条件3,如果加班时间<8, 小K骑单车回家。
(1)为小K的加班时间赋值。
(2)条件1,如果加班时间>=10,小K打车回家。
(3)条件2,如果8<=加班时间<10,小K坐地铁回家。
(4)条件3,如果加班时间<8, 小K骑单车回家。

步骤有了,下面请你告诉小K 该如何回家。

编程题
已完成课堂练习
main.py
16
1
# 为钱包赋值
2
time = 10
3
4
# 条件:如果有1000块钱以上(包含1000块),就去吃日料
5
if time>=10:
6
7
print('小K打车回家')
8
9
# 条件:如果有800-1000块钱之间(包含800块)
10
elif 10>money>=8:
11
12
print('小K坐地铁回家')
13
14
#不满足条件
15
else:
16
print('小K 骑单车回家')
重做
终端
python main.py
小K打车回家
答案提示
取消
再试一次


下面看看小K 自己做的答案。

编程题
已完成课堂练习
main.py
16
1
# 为时间赋值
2
time = 9
3
4
# 条件:如果超过10点,打车回家
5
if time>=10:
6
7
print('小K打车回家')
8
9
# 条件:如果在8点-10点之间
10
elif time>=8:
11
12
print('小K坐地铁回家')
13
14
#条件: 早于8点
15
else:
16
print('小K骑单车回家')
重做
终端
python main.py
小K坐地铁回家
答案提示
取消
再试一次


下面,我们来总结一下 elif 的知识点:



if嵌套

在X战警团队里,每个人都是有段位的, 而段位是根据这个队员在团队的贡献值来确定的,金刚狼的贡献值有 860。 请你写出一段代码,判断金刚狼的段位,代码需要满足如下条件:

1、如果贡献值大于等于 600,显示“特种作战人员”,在此前提下:
a.如果贡献值大于等于 800,显示“王者”。
b.如果贡献值小于 800,显示“黄金”。
a.如果贡献值大于等于 800,显示“王者”。
b.如果贡献值小于 800,显示“黄金”。

2、如果贡献值小于 600,显示“普通作战人员”,在此前提下:
c.如果贡献值大于 400,显示“白银”。
d.如果贡献值小于等于 400,显示“青铜”。
c.如果贡献值大于 400,显示“白银”。
d.如果贡献值小于等于 400,显示“青铜”。

那么像金刚狼,他属于什么段位呢?

像这种如果里面还有如果,也就是条件里面还有条件的情况,我们如何用 Python 完成这个问题呢?

答案就是——嵌套条件

if 嵌套使用的场景是:在满足基础条件的情况下,在观察是否满足其他额外条件。

就像上面的基础条件是贡献值大于等于 600 就属于特种作战人员,要想判断属于什么段位,还要增加额外条件---是否大于 800;在贡献值小于 600 的基础条件下,要想判断属于什么段位,还要增加额外条件---是否大于 400。

因此,金刚狼的段位,用 if 嵌套可以像下方代码这样

编程题
已完成课堂练习
main.py
22
1
contribution=860
2
3
if contribution>=600:
4
print('特种作战人员')
5
6
if contribution>=800:
7
print('王者')
8
9
else:
10
print('黄金')
11
12
else:
13
print('普通作战人员')
14
15
if contribution>400:
16
print('白银')
17
18
else:
19
print('青铜')
20
21
print('结束')
22
重做
终端
python main.py
特种作战人员
王者
结束
答案提示
取消
再试一次


运行一下,出现了三个结果…

那么,在 Python 中,我们如何同时得出"特种作战人员、王者、结束"这三个结果呢?
if嵌套的执行顺序




if 中包含了代码块1,else 中包含了代码块2,这种嵌套逻辑该如何理解呢?

计算机执行的顺序就是:

(1)先给 contribution 赋值。

(2)因为 if 与 else 是二选一的关系, if 和 else 中的代码只会执行一个,要么执行代码块1,要么执行代码块2; contribution=860 满足if(contribution>=600)的条件,就进入代码块1中进行执行,执行 print('特种作战人员')。

(3)进入到代码块1, contribution=860去尝试代码块1中的条件,满足 contribution>800的条件,只能去执行代码块1中的 if,执行 print('王者')。

(4)执行 print('结束')。

下面,小K 又有问题了。

单选
请问,万磁王的贡献值只有 760,他的段位用程序执行的顺序是?
A:赋值:contribution=760 print('结束')。
B:赋值:contribution=760 判断是否大于等于 600 执行 if 下的代码块 1 判断是否大于800 不满足执行print('黄金') print('结束')。
C:赋值:contribution=760 判断是否大于等于 800 print('结束')。

所以,我们的运行顺序是一步一步执行下来的。

下面,小K送你一张江湖秘籍,收集起来哦。



前三课综合复习

好了,至此,我们 Python 小课的体验课程内容就讲完了,不知道大家有没有真正的把这三节课的内容消化吸收。

接下来让我们一起总结一下三节体验课学习过的内容:

在第一节课中,我们简单了解了一下 Python 的基本情况。

然后,学习了 print()函数几种不同用法。

接着,学习了变量的命名规则以及如何对变量进行赋值。




在第二节课中,我们学习了三个 Python 中常用的数据类型,分别是str、int、float。

然后,了解了在 Python 中加号不仅可以用来做加法操作,还可以实现字符串连接的功能。

接着,学习了不同数据类型的数据之间如何进行转换。




好了,再总结一下今天学习的知识点:



乘风破浪的 Python

三节体验课现在已经接近尾声,相信大家现在已经跨入 Python 世界的大门,从对 Python 的片面了解,到现在能根据逻辑实现一些简单代码、对 Python 有了基本的认知和了解。

回忆一下,当初是什么让你决定要打开 Python 世界的大门呢?

因为想具备一项数据分析的能力?因为想教家里的宝宝学编程?因为需要完成学校里的 Python 考试?因为每天工作中处理的表格太多,想要将这些重复繁琐的工作自动化处理?因为看到身边的人都在学,所以就来学了?

无论当时初衷到底是什么,经历这几天的体验课学习,你已经打开了 Python 世界的大门。

接下来,如果想要近一步更深入的学习 Python,想要在自己的平时工作中应用,解决实际的问题该怎么办呢?

我们先来看一下,在我们的课程中,Python 还可以解决大家日常工作中的哪些问题?




如果您还在被每天重复批量处理的 Excel 表格所苦恼,Python 可以来帮您实现自动化的办公,实现“Python 10分钟,轻松1整天”,让您实现每天工作量“不饱和”




如果您经常苦恼该如何分析业务数据,该绘制什么样的图表给老板展示,该如何根据图表讲故事。




别难过,Python 可以帮助您实现数据的分析和性感的数据可视化图表。




看到某个网站的资料特别想要获取,但是数据量大,逐个复制粘贴太麻烦。

别着急,Python 网络爬虫帮你快速解决问题,将想要的数据从站点上爬取下来,并实现解析后存储。

原来几百上千次的复制粘贴,分分钟解决,这就是 Python 网络爬虫的魅力。




我们再回到上面的问题,想要近一步学习该怎么办,有两个选择,一是选择自学,但对于小白来讲不建议自学,因为可能会走很多弯路,而且中间很难坚持下去。




二是找一个靠谱的课程,系统的学习,这样会少走很多弯路。




当然,你懂的,灯塔学院就是一个可以提供各类靠谱 Python 课程的平台。

在灯塔学院,您可以学习以 Python 为基础的网络爬虫、数据分析、数据可视化、算法等多门课程。




灯塔学院,作为国内首家泛 IT 在线教育平台在2013年就已经上线了。

灯塔学院在业界被广泛认可,在业界中,真是拿奖拿到手软。这里给大家展示一下近一两年拿过的奖。




所以,教 Python 我们是专业的。

在后面的课程中,有趣的互动剧本还会继续陪伴你学习更多的 Python 语法,最终实现真正掌握 Python 。

后面的课程,我们循序渐进的进行讲解,并逐渐提升课程难度,在不同的阶段都会有相应的项目用来巩固之前所学的知识点。

同时,更有超级厉害的助教来时刻为你解答各种学习问题,每周助教还会以直播的形式与大家面对面的答疑。




最后的最后,感谢大家在这三节体验课中的努力与付出,同时也欢迎大家继续在灯塔学院学习其它的课程,再见咯!

课堂练习 >>
X战警PK死侍
if条件判断语句
中等


课堂练习