零基础学Python:Day5!条件判断:让程序学会做选择
昨天我们学习了Python里的各种运算符,今天我们就要用运算符来实现Python里非常重要的功能——条件判断!有了条件判断,程序就能根据不同情况做出不同的反应,不再是从上到下一路执行到底啦~老规矩,先公布昨天的作业答案。
📋 昨日作业答案
1. 计算一下(10 + 5) * 2 - 8结果是多少?先心算再验证
心算:括号里10+5=15,乘以2等于30,减8等于22。运行验证:
result = (10 + 5) * 2 - 8print(result) # 输出 22,正确
2. 写代码判断一个数字是不是偶数
判断偶数的方法:一个数除以2余数是0就是偶数,所以:
num = 10is_even = num % 2 == 0print(is_even) # 10是偶数,输出 True
换一个奇数试试:
num = 7is_even = num % 2 == 0print(is_even) # 7是奇数,输出 False
3. 判断成绩是否及格:成绩大于等于60分并且小于100分,输出结果
score = 85is_pass = score >= 60 and score < 100print(is_pass) # 输出 True
如果成绩是59分:
score = 59is_pass = score >= 60 and score < 100print(is_pass) # 输出 False
4. 思考一下:not (age > 18 and age < 30)等价于什么?
根据德摩根定律,它等价于not age > 18 or not age < 30,也就是age <= 18 or age >= 30,你猜对了吗?
好啦,都对完答案了,我们开始今天的正题——条件判断if语句,这是你写第一个真正有意思的Python程序必须要会的知识点~
🤔 为什么需要条件判断?
我们之前写的代码,都是从上到下一行一行顺序执行,比如:
print("第一行")print("第二行")print("第三行")
不管怎样,三行都会依次输出。
但现实生活中我们经常需要做选择:
程序里要实现这些选择,就必须用条件判断!
基础结构:if语句怎么写?
Python里条件判断最基础的if语句结构是这样的:
if 条件: 满足条件时执行的代码块
这里有两个非常非常重要的点,新手一定要注意:
- 条件后面必须加冒号
:,很多新手都会忘加冒号,导致报错 - 满足条件的代码块必须缩进,一般用4个空格或者一个Tab,Python靠缩进来识别哪些代码是满足条件才执行的
举个最简单的例子,判断是否成年:
age = 20if age >= 18:print("你已经是成年人啦!")
运行这段代码,因为age >=18条件满足,所以会输出你已经是成年人啦!。如果把age改成16,条件不满足,那print就不会执行,什么都不会输出。
二选一:if...else...结构
很多时候我们需要满足条件做一件事,不满足条件做另一件事,这时候就要加上else分支,结构是:
if 条件: 满足条件时执行的代码块else: 不满足条件时执行的代码块
还是判断成年的例子:
age = 16if age >= 18:print("你已经是成年人啦!")else:print("你还未成年哦~")
这时候因为age=16不满足条件,就会执行else里的代码,输出你还未成年哦~,是不是非常简单?
多选一:if...elif...else...结构
如果我们有更多的情况,不止两种选择怎么办?比如我们把成绩分成不同等级:
这时候就可以用elif来添加更多的条件分支,结构:
if 条件1: 条件1满足执行elif 条件2: 条件1不满足,条件2满足执行elif 条件3: 条件1、2不满足,条件3满足执行else: 所有条件都不满足执行
对应成绩分等级的例子,我们来写一下:
score = 85if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 60:print("及格")else:print("不及格")
运行一下,score=85,第一个条件>=90不满足,第二个条件>=80满足,所以输出良好,完美符合我们的需求。
这里需要注意:elif结构是从上到下依次判断,只要有一个条件满足,就会执行对应代码块,后面的条件都不会再判断了哦。
比如我们把score=95,第一个条件满足,直接输出优秀,后面的条件不会再看了,这正是我们想要的结果。
嵌套条件判断:if里面还能再放if
if的代码块里还能再写if,这就是嵌套条件判断,适合更复杂的场景。比如我们先判断是否及格,及格了再分等级:
score = 78if score >= 60:print("恭喜你及格了")# 嵌套if,给及格的同学再分等级if score >= 80:print("成绩良好")else:print("成绩及格")else:print("很遗憾,不及格")
运行结果:
恭喜你及格了成绩及格
嵌套的时候一定要注意缩进,每层嵌套都要正确缩进,不然Python会认错代码块,就会报错或者结果不对。
💡 小技巧:三元表达式简化二选一
如果我们只是简单的二选一,给变量赋值,还可以用更简洁的三元表达式:
变量 = 满足条件的值 if 条件 else 不满足条件的值
比如判断成年,我们可以写成:
age = 20result = "成年人" if age >= 18 else "未成年人"print(result) # 输出 成年人
是不是比if else更简洁?这种简单赋值的场景用三元表达式非常方便。
⚠️ 新手容易踩的坑
给大家总结几个条件判断里新手最常犯的错误,记得避开:
- 忘记写冒号
::不管是if、elif还是else,后面都必须加冒号,忘加就会报错 - 缩进错误:if里面的代码必须缩进,不缩进会报错,缩进不对结果也不对,建议统一用4个空格缩进
- 把
==写成=:条件判断比较相等是==,一个=是赋值,一定要注意,比如:# 错误写法:这是赋值,不是比较,结果永远是True,不会报错但逻辑错了if age = 18:
# 正确写法:两个等于号才是比较if age == 18:
- 多余的缩进:不需要缩进的代码不要乱缩进,不然会归到上面的代码块里,逻辑错误
📝 今日小结
今天我们学习了Python里的条件判断语句,这是让程序拥有"判断力"的基础,我们总结一下重点:
if elif else:多选一,多个分支只会执行一个满足条件的- 一定不要忘记冒号,缩进一定要正确,这是新手最容易错的点
👉 今日作业:
- 写一个程序,输入一个数字,判断它是奇数还是偶数,输出对应结果(提示:可以用input()输入)
- 写一个猜数字小游戏:预设一个数字比如
answer = 8,让用户输入一个猜的数字,如果你猜的比答案大,输出"你猜大了",比答案小输出"你猜小了",猜对了输出"恭喜你猜对了!" - 思考一下:多个if连写和if elif else有什么区别?比如:
# 多个if连写if score >= 60:print("及格")if score >= 80:print("良好")
和# if elifif score >= 60:print("及格")elif score >= 80:print("良好")
这两个结果有什么不一样?想一想为什么哦。
明天我们会学习Python里非常常用的循环语句,让程序帮你重复做事情,记得来打卡学习呀~
如果觉得这个零基础Python教程对你有用,欢迎点赞关注哦~