
文章目录引言为什么需要条件判断一、比较运算符1. 什么是比较运算符2. 六种比较运算符3. 比较运算符的应用二、逻辑运算符1. 什么是逻辑运算符2. 三种逻辑运算符and与两个条件都为True结果才为Trueor或只要有一个条件为True结果就为Truenot非取反True变FalseFalse变True3. 逻辑运算符的优先级4. 逻辑运算符的实际应用三、if/elif/else 条件语句1. if 语句单条件判断2. if-else 语句二选一3. if-elif-else 语句多条件判断4. 条件判断的嵌套5. 条件判断的实际应用示例1成绩等级判定示例2闰年判断示例3BMI指数计算示例4简单计算器四、条件表达式三元运算符1. 什么是条件表达式2. 条件表达式的应用五、实战练习练习1年龄分类练习2季节判断练习3密码验证练习4三角形判断六、常见问题与排错问题1缩进错误问题2混淆 和 问题3条件判断顺序错误七、本篇小结下期预告✍创作者全栈弄潮儿 个人主页全栈弄潮儿的个人主页️ 个人社区欢迎你的加入全栈开发社区 专栏Python实战教程从零基础到AI Agent开发引言为什么需要条件判断在前面的课程中我们编写的程序都是按照固定的顺序执行的。但现实世界中我们经常需要根据不同的情况做出不同的选择。比如如果今天下雨就带伞否则就不带伞如果考试成绩大于60分就及格否则就不及格如果年龄大于等于18岁就是成年人否则就是未成年人在编程中这种如果…就…的逻辑叫做条件判断。掌握了条件判断你的程序就能像人一样思考和决策了。一、比较运算符1. 什么是比较运算符比较运算符用于比较两个值的大小或是否相等返回的结果是布尔值True 或 False。2. 六种比较运算符# 等于 print(55)# Trueprint(53)# Falseprint(abcabc)# True# 不等于 !print(5!3)# Trueprint(5!5)# False# 大于 print(53)# Trueprint(35)# False# 小于 print(35)# Trueprint(53)# False# 大于等于 print(55)# Trueprint(53)# Trueprint(35)# False# 小于等于 print(55)# Trueprint(35)# Trueprint(53)# False提示是比较是否相等是赋值不要混淆3. 比较运算符的应用# 判断年龄是否成年age20is_adultage18print(f是否成年{is_adult})# 输出True# 判断成绩是否及格score75is_passscore60print(f是否及格{is_pass})# 输出True# 判断是否为偶数num10is_evennum%20print(f是否为偶数{is_even})# 输出True二、逻辑运算符1. 什么是逻辑运算符逻辑运算符用于组合多个条件返回的结果也是布尔值。2. 三种逻辑运算符and与两个条件都为True结果才为Trueprint(TrueandTrue)# Trueprint(TrueandFalse)# Falseprint(FalseandTrue)# Falseprint(FalseandFalse)# False# 实际应用age25has_idTruecan_enterage18andhas_idprint(f能否进入{can_enter})# 输出Trueor或只要有一个条件为True结果就为Trueprint(TrueorTrue)# Trueprint(TrueorFalse)# Trueprint(FalseorTrue)# Trueprint(FalseorFalse)# False# 实际应用is_weekendTrueis_holidayFalsecan_restis_weekendoris_holidayprint(f能否休息{can_rest})# 输出Truenot非取反True变FalseFalse变Trueprint(notTrue)# Falseprint(notFalse)# True# 实际应用is_rainingFalseneed_umbrellanotis_rainingprint(f需要带伞吗{need_umbrella})# 输出True3. 逻辑运算符的优先级# 优先级not and or# 示例resultTrueorFalseandFalseprint(result)# 输出True先算 and再算 or# 使用括号改变优先级result(TrueorFalse)andFalseprint(result)# 输出False先算括号内的 or提示当条件复杂时建议使用括号明确优先级提高代码可读性。4. 逻辑运算符的实际应用# 判断是否可以贷款age30income8000credit_score700can_loanage18andincome5000andcredit_score650print(f是否可以贷款{can_loan})# 输出True# 判断是否为工作日dayMondayis_weekdayday!Saturdayandday!Sundayprint(f是否为工作日{is_weekday})# 输出True# 判断是否需要加班is_urgentTrueis_weekendFalseneed_overtimeis_urgentor(notis_weekendandhas_deadline)三、if/elif/else 条件语句1. if 语句单条件判断# 基本语法# if 条件:# 执行代码age20ifage18:print(你已成年)print(可以考驾照了)print(程序结束)输出你已成年 可以考驾照了 程序结束提示if 语句后面的代码必须缩进通常是4个空格表示这些代码属于 if 的代码块。2. if-else 语句二选一# 基本语法# if 条件:# 条件为True时执行# else:# 条件为False时执行age15ifage18:print(你已成年)else:print(你未成年)print(程序结束)输出你未成年 程序结束3. if-elif-else 语句多条件判断# 基本语法# if 条件1:# 条件1为True时执行# elif 条件2:# 条件2为True时执行# elif 条件3:# 条件3为True时执行# else:# 所有条件都不满足时执行score85ifscore90:print(优秀)elifscore80:print(良好)elifscore70:print(中等)elifscore60:print(及格)else:print(不及格)输出良好提示elif 是 “else if” 的缩写可以有多个 elif但只会执行第一个满足条件的分支。4. 条件判断的嵌套# 条件判断可以嵌套使用age25has_idTrueifage18:ifhas_id:print(可以进入)else:print(请出示证件)else:print(未成年禁止入内)提示嵌套不要太深通常不超过3层否则代码可读性会变差。5. 条件判断的实际应用示例1成绩等级判定scorefloat(input(请输入成绩))ifscore90:gradeAelifscore80:gradeBelifscore70:gradeCelifscore60:gradeDelse:gradeFprint(f成绩{score}等级{grade})示例2闰年判断yearint(input(请输入年份))# 闰年的条件能被4整除但不能被100整除或者能被400整除if(year%40andyear%100!0)or(year%4000):print(f{year}年是闰年)else:print(f{year}年不是闰年)示例3BMI指数计算# 获取身高和体重heightfloat(input(请输入身高米))weightfloat(input(请输入体重公斤))# 计算BMIbmiweight/(height**2)# 判断BMI等级ifbmi18.5:category偏瘦elifbmi24:category正常elifbmi28:category偏胖else:category肥胖print(f你的BMI是{bmi:.1f})print(fBMI等级{category})示例4简单计算器# 获取用户输入num1float(input(请输入第一个数字))operatorinput(请输入运算符、-、*、/)num2float(input(请输入第二个数字))# 根据运算符进行计算ifoperator:resultnum1num2elifoperator-:resultnum1-num2elifoperator*:resultnum1*num2elifoperator/:ifnum20:print(错误除数不能为0)resultNoneelse:resultnum1/num2else:print(错误不支持的运算符)resultNone# 输出结果ifresultisnotNone:print(f计算结果{num1}{operator}{num2}{result})四、条件表达式三元运算符1. 什么是条件表达式条件表达式是 if-else 的简写形式用于简单的二选一场景。# 基本语法# 结果 值1 if 条件 else 值2# 示例age20status成年ifage18else未成年print(status)# 输出成年# 等价于ifage18:status成年else:status未成年2. 条件表达式的应用# 求最大值a10b20max_valueaifabelsebprint(f最大值{max_value})# 输出20# 判断奇偶num7parity奇数ifnum%2!0else偶数print(f{num}是{parity})# 输出7是奇数# 判断正负num-5sign正数ifnum0else(负数ifnum0else零)print(f{num}是{sign})# 输出-5是负数提示条件表达式适合简单的二选一场景复杂的多条件判断还是用 if-elif-else。五、实战练习练习1年龄分类ageint(input(请输入年龄))ifage0:print(年龄不能为负数)elifage3:print(婴儿)elifage13:print(儿童)elifage18:print(青少年)elifage60:print(成年人)else:print(老年人)练习2季节判断monthint(input(请输入月份1-12))ifmonth1ormonth12:print(无效的月份)elifmonthin[3,4,5]:print(春季)elifmonthin[6,7,8]:print(夏季)elifmonthin[9,10,11]:print(秋季)else:print(冬季)练习3密码验证correct_password123456user_inputinput(请输入密码)ifuser_inputcorrect_password:print(密码正确欢迎)else:print(密码错误请重试)练习4三角形判断# 获取三条边的长度afloat(input(请输入第一条边))bfloat(input(请输入第二条边))cfloat(input(请输入第三条边))# 判断是否能构成三角形ifabcandacbandbca:# 判断三角形类型ifabc:print(等边三角形)elifaboracorbc:print(等腰三角形)else:print(普通三角形)else:print(不能构成三角形)六、常见问题与排错问题1缩进错误原因Python使用缩进来表示代码块缩进不一致会报错解决方法统一使用4个空格缩进# ❌ 错误age20ifage18:print(成年)# IndentationError: expected an indented block# ✅ 正确age20ifage18:print(成年)# 正确缩进问题2混淆 和 原因是赋值是比较解决方法比较相等时使用# ❌ 错误age20ifage18:# SyntaxError: invalid syntaxprint(18岁)# ✅ 正确age20ifage18:print(18岁)问题3条件判断顺序错误原因if-elif-else 只会执行第一个满足条件的分支解决方法将更具体的条件放在前面# ❌ 错误score95ifscore60:print(及格)elifscore90:print(优秀)# 永远不会执行# ✅ 正确score95ifscore90:print(优秀)elifscore60:print(及格)七、本篇小结今天我们完成了以下学习内容比较运算符、!、、、、用于比较两个值逻辑运算符and、or、not用于组合多个条件if 语句单条件判断if-else 语句二选一判断if-elif-else 语句多条件判断条件表达式if-else 的简写形式请记住这三个结论比较运算符返回布尔值True 或 False逻辑运算符组合条件and 要求全部为Trueor 只要一个为Trueif-elif-else 按顺序判断只会执行第一个满足条件的分支下期预告在第5期中我们将学习Python的循环结构包括for 循环和 while 循环range() 函数的使用break、continue 和 pass循环的高级用法敬请期待✍坚持原创求关注点赞收藏