版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章条件语句布尔表达式·if-else·if-elif-else面向师范生的Python编程导论本章概述2第3章条件语句本章将学习如何让程序根据条件做出判断和选择3.1布尔表达式布尔类型、关系运算符、逻辑运算符3.2if-else语句判断奇偶、动物园门票、绝对值3.3if-elif-else语句门票进阶、数字比大小、BMI计算本章学习目标4第3章条件语句知识目标理解布尔表达式的概念掌握6个关系运算符掌握3个逻辑运算符理解if语句的执行流程掌握if-else语句的语法掌握if-elif-else语句能力目标能够编写含条件判断的程序能够绘制条件语句流程图能够使用%运算符判断奇偶能够设计多条件分支程序能够解决BMI计算等问题能够分析嵌套条件语句本章课时安排(4课时)6第3章条件语句课时教学内容重点/难点活动设计第1课时布尔表达式与关系运算符布尔表达式的概念概念讲解+Shell练习第2课时逻辑运算符与if语句if语句的执行流程编程实践+流程图第3课时if-else语句与判断奇偶if-else语法结构任务驱动+编程实践第4课时if-elif-else与综合应用多条件分支综合项目+测试提示建议用流程图帮助学生理解条件语句的执行流程,培养计算思维。3.1布尔表达式理解布尔类型、关系运算符与逻辑运算符3.1.1回忆布尔类型9第3章条件语句·3.1布尔表达式布尔类型回顾在2.2.1节中我们学过布尔类型(bool),该类型的数据只有两个值:True和False。这个类型在条件语句中极为重要。代码3.1#代码3.1a=Trueb=3>1c=9<1d=10>=10e=Falseprint(f"a的值={a}")print(f"b的值={b}")print(f"c的值={c}")print(f"d的值={d}")print(f"e的值={e}")布尔表达式的概念11第3章条件语句·3.1布尔表达式运行结果>>>a的值=Trueb的值=Truec的值=Falsed的值=Truee的值=False什么是布尔表达式?表达式是可以被求值的代码,运算后得到一个值。布尔表达式(Booleanexpressions)是指最后得到的值是布尔类型的表达式。布尔表达式中使用的运算符是关系运算符,主要用于值的比较,最后返回布尔类型的值。提示变量a和e本身就是布尔值,而b、c、d的值等于右边关系表达式的值。3.1.2关系运算符13第3章条件语句·3.1布尔表达式关系运算符关系运算符用来进行值的比较,其返回值是布尔类型。使用关系运算符的表达式被称为关系表达式,是布尔表达式的一种。#运算符含义案例说明1<小于a<ba是否小于b2<=小于或等于a<=ba是否小于等于b3>大于a>ba是否大于b4>=大于或等于a>=ba是否大于等于b5==等于a==ba是否等于b6!=不等于a!=ba是否不等于b==与=的区别15第3章条件语句·3.1布尔表达式=赋值运算符一个等号(=)是赋值运算符含义:把右边表达式的值赋予左边的变量不是判断是否相等示例:a=100示例:name='Tom'==等于运算符两个等号(==)是关系运算符含义:判断两个值是否相等返回布尔类型True或False示例:2==2返回True示例:1==2返回False注意注意:!=表示不等于,由英文感叹号和等号组成,表示判断两个值是否不相等。任务3.1:关系表达式练习17第3章条件语句·3.1布尔表达式任务3.1在Shell中尝试运行下列关系表达式,观察运行结果是否与预期一致:2>11+2>=32<=2100<991==22==21!=2Shell>>>2>1True>>>1+2>=3True>>>2<=2True>>>100<99False>>>1==2False>>>2==2True>>>1!=2True3.1.3逻辑运算符19第3章条件语句·3.1布尔表达式逻辑运算符逻辑运算符可以把多个布尔表达式连接在一起,组成更复杂的布尔表达式。Python的逻辑运算符包括:and(与)、or(或)、not(非)。#逻辑表达式运算规则1xandy如果x是False,则返回x;否则返回y2xory如果x是True,则返回x;否则返回y3notx如果x是True,则返回False;否则返回Trueand运算符真值表21第3章条件语句·3.1布尔表达式and(与)运算符and运算符:只有左右两边的表达式值都为True时,其返回值才是True。否则返回False。XYXandY说明TrueTrueTrue两边都为True,结果为TrueTrueFalseFalse有一边为False,结果为FalseFalseTrueFalse有一边为False,结果为FalseFalseFalseFalse两边都为False,结果为False提示记忆口诀:and运算,全真才真,一假则假。or运算符真值表23第3章条件语句·3.1布尔表达式or(或)运算符or运算符:只要左右两边有一个表达式的值是True,其返回值就是True。只有两边都为False时才返回False。XYXorY说明TrueTrueTrue两边都为True,结果为TrueTrueFalseTrue有一边为True,结果为TrueFalseTrueTrue有一边为True,结果为TrueFalseFalseFalse两边都为False,结果为False提示记忆口诀:or运算,一真则真,全假才假。not运算符真值表25第3章条件语句·3.1布尔表达式not(非)运算符not运算符:对布尔值取反。如果x是True,则返回False;如果x是False,则返回True。XnotX说明TrueFalseTrue取反得到FalseFalseTrueFalse取反得到Truenot的应用not(2>1)的结果是False,因为2>1为True,取反为Falsenot(1!=2)的结果是False,因为1!=2为True,取反为Falsenot常用于反转条件,使代码更易读短路求值27第3章条件语句·3.1布尔表达式短路求值原则Python的逻辑运算符使用短路求值原则:只从左往右计算最少的表达式的值,以确定整个表达式的值。and的短路如果左边为False直接返回False不再计算右边表达式示例:Falseand(1/0)不会报错,因为右边不计算or的短路如果左边为True直接返回True不再计算右边表达式示例:Trueor(1/0)不会报错,因为右边不计算逻辑运算示例29第3章条件语句·3.1布尔表达式代码3.2#代码3.2a=2>3
and
3>=3b=1==1
and
2<=1c=1==1
or
2<=1d=10>11
or
Falsee=notdprint(f"a的值={a}")print(f"b的值={b}")print(f"c的值={c}")print(f"d的值={d}")print(f"e的值={e}")运行结果>>>a的值=Falseb的值=Falsec的值=Trued的值=Falsee的值=True任务3.2:复杂布尔表达式31第3章条件语句·3.1布尔表达式任务3.2在Shell中尝试下列关系表达式,观察其最终值是否与预期一致:not(2>1)1+2>=3and2<=2100<99or1==2not(2==2and1!=2)TrueandFalseorTrueFalseorTrueandFalseShell>>>not(2>1)False>>>1+2>=3and2<=2True>>>100<99or1==2False>>>not(2==2and1!=2)False>>>TrueandFalseorTrueTrue>>>FalseorTrueandFalseFalse提示提示:and的优先级高于or。先算and,再算or。逻辑运算符优先级33第3章条件语句·3.1布尔表达式优先级运算符说明1(最高)()括号2关系运算符<<=>>===!=3not非4and与5(最低)or或优先级示例TrueandFalseorTrue先算TrueandFalse得到False,再算FalseorTrue得到TruenotTrueandFalse先算notTrue得到False,再算FalseandFalse得到False建议:复杂表达式使用括号提高可读性3.1小结:布尔表达式布尔类型只有两个值:True和False布尔表达式是结果为布尔类型的表达式6个关系运算符:<、<=、>、>=、==、!=一个=是赋值,两个==是判断相等3个逻辑运算符:and(与)、or(或)、not(非)and:全真才真,一假则假or:一真则真,全假才假not:取反,True变False,False变True逻辑运算符使用短路求值原则3.2if-else语句掌握if语句、if-else语句的语法与执行流程顺序结构vs条件结构37第3章条件语句·3.2if-else语句顺序结构代码从上到下顺序执行不会循环重复执行不会根据条件跳转执行前面学过的所有代码示例:计算正方形周长条件结构根据条件决定执行路径条件为True执行一段代码条件为False执行另一段代码使用if-else语句实现示例:判断正负数现实中的程序通常需要根据实际情况设计执行过程3.2.1求绝对值39第3章条件语句·3.2if-else语句任务3.3用户输入一个整数,设计一个程序输出这个数的绝对值。例如,用户输入-10,程序输出其绝对值10。绝对值的概念绝对值是一个数在数轴上的位置到原点的距离负数的绝对值是其相反数非负数的绝对值是其本身需要判断输入是正数还是负数,然后根据条件计算绝对值程序实现41第3章条件语句·3.2if-else语句代码3.3#代码3.3#输入数据print("请输入一个整数:")n=int(input())#处理数据absolute_value=n#设默认绝对值为nifn<0:absolute_value=n*-1
#如果是负数,取相反数#输出数据print(f"{n}绝对值是{absolute_value}")运行结果>>>请输入一个整数:-10-10绝对值是10if语句的语法43第3章条件语句·3.2if-else语句if语句条件语句(if语句)会根据条件(布尔表达式)的值来确定是否需要执行该语句下的代码块。if语法#if语句的基本语法if<布尔表达式>:<语句1><语句2>...#if语句之后的代码(不缩进)语法要点if语句以关键字if开头,紧跟布尔表达式,以英文冒号(:)结尾下一行代码有缩进(四个空格),缩进的代码当条件为True时执行if语句的执行流程45第3章条件语句·3.2if-else语句if语句代码执行流程条件成立?True执行if代码块False跳过if代码块继续执行后续代码缩进的概念47第3章条件语句·3.2if-else语句什么是缩进?Python使用缩进来表示代码块的层次关系。if语句后的代码需要缩进(四个空格),表示当条件为True时执行的代码块。indentation.py#有缩进的代码ifn<0:absolute_value=n*-1
#缩进4个空格
print("是负数")#同属if代码块#没有缩进的代码(不属于if)print("程序结束")#无论条件是否成立都会执行注意Python的缩进非常重要!缩进错误会导致语法错误或逻辑错误。建议使用4个空格进行缩进。3.2.2动物园门票49第3章条件语句·3.2if-else语句任务3.4动物园要设计一个门票费用计算程序,三岁及以下儿童免费,年满60岁的老年人免费,其他年龄段游客门票为100元。请设计一个程序,根据游客的年龄输出门票价格。代码3.4#代码3.4使用两个ifprint("请输入年龄:")age=int(input())ifage<=3
orage>=60:
print("门票价格为0元。")ifage>3
andage<60:
print("门票价格为100元。")使用if-else优化51第3章条件语句·3.2if-else语句优化思路第二个if语句的条件恰好是与第一个if语句相反的情况,因此可以使用if-else语句来优化。代码3.5#代码3.5使用if-elseprint("请输入年龄:")age=int(input())ifage<=3
orage>=60:
print("门票价格为0元。")else:
print("门票价格为100元。")运行结果>>>请输入年龄:18门票价格为100元。if-else语句的基本语法53第3章条件语句·3.2if-else语句代码3.6if-else语法#代码3.6if-else语法结构if<条件>:<语句1><语句2>...else:<语句N><语句N+1>...语法说明if和else后面都有英文冒号(:)if和else的代码块都需要缩进(四个空格)当if条件为True时,执行if代码块当if条件为False时,执行else代码块if-else语句的执行流程55第3章条件语句·3.2if-else语句if-else语句代码执行流程条件成立?True执行if代码块False执行else代码块继续执行后续代码注意:if和else后面都有冒号,其代码块都需要缩进3.2.3判断奇偶数57第3章条件语句·3.2if-else语句奇数和偶数的定义奇数是不能被2整除的整数,偶数是能被2整除的整数。整除的含义是:如果a除以b,商为整数,余数为0,则a可以被b整除。程序设计思路N除以2,余数为0,N为偶数N除以2,余数为1,N为奇数一个整数只能是偶数或奇数使用if-else结构即可使用%运算符N%2==0表示N能被2整除N%2==1表示N不能被2整除%取余数运算符非常实用是判断奇偶的关键任务3.5:判断奇偶数59第3章条件语句·3.2if-else语句任务3.5用户输入一个整数,请设计一个程序判断这个数是奇数还是偶数。代码3.7#代码3.7#输入数据print("请输入一个整数:")n=int(input())#处理数据ifn%2==0:
print(f"{n}是偶数!")else:
print(f"{n}是奇数!")运行结果>>>请输入一个整数:33是奇数!任务3.6:判断倍数61第3章条件语句·3.2if-else语句任务3.6请设计一个程序,读取用户输入的两个整数a和b,并判断a是否为b的倍数。示例输入:63示例输出:6是3的倍数!multiple.py#参考代码print("请输入两个整数,每行一个:")a=int(input())b=int(input())ifa%b==0:
print(f"{a}是{b}的倍数!")else:
print(f"{a}不是{b}的倍数!")运行结果>>>请输入两个整数,每行一个:636是3的倍数!3.2小结:if-else语句if语句根据条件(布尔表达式)决定是否执行代码块if语句语法:if条件:(冒号结尾,代码块缩进)if-else语句:条件为True执行if代码块,False执行else代码块if和else后面都有英文冒号(:)代码块需要缩进(四个空格)n%2==0判断偶数a%b==0判断a是否为b的倍数Python使用缩进而非大括号来表示代码块3.3if-elif-else语句掌握多条件分支语句,解决复杂条件判断问题3.3.1动物园门票进阶65第3章条件语句·3.3if-elif-else任务3.7动物园要设计一个门票费用计算程序,其定价规则如下:三岁及以下的儿童及年满60岁的老年人免费;三岁以上且未满18岁的未成年人,票价为常规票价的5折;常规票价为100元。年龄范围门票价格说明<=3或>=600元免费4~1750元5折18~59100元常规票价问题代码分析67第3章条件语句·3.3if-elif-else代码3.8#代码3.8有问题的程序print("请输入年龄:")age=int(input())ifage<=3
orage>=60:
print("门票价格为0元。")ifage>3
andage<18:
print("门票价格为50元。")else:
print("门票价格为100元。")问题:输出两个结果!>>>请输入年龄:66门票价格为0元。门票价格为100元。注意问题:输入66时输出了两个结果!因为66同时符合第一个if和第二个if的else。else只匹配第二个if。嵌套if语句69第3章条件语句·3.3if-elif-else解决方案:嵌套if在第一个条件不成立的情况下,在else代码块中进一步判断age的值。代码3.9#代码3.9嵌套if语句print("请输入年龄:")age=int(input())ifage<=3
orage>=60:
print("门票价格为0元。")else:
ifage>3
andage<18:
print("门票价格为50元。")
else:
print("门票价格为100元。")运行结果(正确)>>>请输入年龄:66门票价格为0元。if-elif-else语句语法71第3章条件语句·3.3if-elif-elseif-elif-else结构尾部嵌套的情况非常常见,Python提供了更精简的结构:if-elif-else。代码3.10#代码3.10if-elif-else语法if<条件1>:<语句>...elif<条件2>:<语句>...elif<条件3>:<语句>...else:<语句>...提示elif是elseif的缩写。可以有多个elif,但只有一个if和一个else(else可省略)。使用if-elif-else优化门票程序73第3章条件语句·3.3if-elif-else代码3.11#代码3.11使用if-elif-elseprint("请输入年龄:")age=int(input())ifage<=3
orage>=60:
print("门票价格为0元。")elifage>3
andage<18:
print("门票价格为50元。")else:
print("门票价格为100元。")运行结果>>>请输入年龄:66门票价格为0元。对比if-elif-else比嵌套if更简洁,可读性更强。条件按顺序判断,匹配一个后不再检查后续条件。if-elif-else执行流程75第3章条件语句·3.3if-elif-else条件1?执行代码块1True条件2?执行代码块2True执行else代码块继续执行后续代码3.3.2数字比大小77第3章条件语句·3.3if-elif-else任务3.8用户输入三个整数,设计一个程序输出这三个数中的最大值。解题思路1.先假设第一个数a是最大值max_val2.将max_val与第二个数b比较,如果b更大,更新max_val3.将max_val与第三个数c比较,如果c更大,更新max_val4.输出max_val即为三个数中的最大值数字比大小程序79第3章条件语句·3.3if-elif-elsemax.py#输入三个整数print("请输入三个整数,每行一个:")a=int(input())b=int(input())c=int(input())#比较大小max_val=aifb>max_val:max_val=bifc>max_val:max_val=c#输出结果print(f"三个数中的最大值是:{max_val}")运行结果>>>请输入三个整数,每行一个:5128三个数中的最大值是:123.3.3空气质量报告81第3章条件语句·3.3if-elif-else任务3.9用户输入一个整数表示AQI(空气质量指数),设计一个程序根据AQI值输出空气质量等级。AQI范围等级颜色健康影响0~50优绿色空气质量令人满意51~100良黄色空气质量可以接受101~150轻度污染橙色敏感人群应有反应151~200中度污染红色一般人群有反应201~300重度污染紫色健康受到影响>300严重污染褐红色健康警报空气质量报告程序83第3章条件语句·3.3if-elif-elseaqi.py#空气质量报告print("请输入AQI值:")aqi=int(input())ifaqi<=50:
print(f"AQI={aqi},空气质量:优")elifaqi<=100:
print(f"AQI={aqi},空气质量:良")elifaqi<=150:
print(f"AQI={aqi},空气质量:轻度污染")elifaqi<=200:
print(f"AQI={aqi},空气质量:中度污染")elifaqi<=300:
print(f"AQI={aqi},空气质量:重度污染")else:
print(f"AQI={aqi},空气质量:严重污染")运行结果>>>请输入AQI值:85AQI=85,空气质量:良3.3.4BMI计算85第3章条件语句·3.3if-elif-else任务3.10用户输入身高(米)和体重(千克),计算BMI值并输出健康等级。BMI=体重/(身高*身高)BMI范围等级说明<18.5偏瘦体重不足18.5~24正常健康体重24~28偏胖超重>=28肥胖需要关注BMI计算程序87第3章条件语句·3.3if-elif-elsebmi.py#BMI计算print("请输入身高(米):")height=float(input())print("请输入体重(千克):")weight=float(input())bmi=weight/(height**2)ifbmi<18.5:
print(f"BMI={bmi:.1f},偏瘦")elifbmi<24:
print(f"BMI={bmi:.1f},正常")elifbmi<28:
print(f"BMI={bmi:.1f},偏胖")else:
print(f"BMI={bmi:.1f},肥胖")运行结果>>>请输入身高(米):1.75请输入体重(千克):70BMI=22.9,正常成绩等级转换89第3章条件语句·3.3if-elif-elsegrade.py#成绩等级转换print("请输入成绩(0-100):")score=int(input())ifscore>=90:grade="A"elifscore>=80:grade="B"elifscore>=70:grade="C"elifscore>=60:grade="D"else:grade="F"print(f"成绩{score}的等级为:{grade}")运行结果>>>请输入成绩(0-100):85成绩85的等级为:B3.3小结:if-elif-else语句if-elif-else用于多条件分支判断elif是elseif的缩写,可以有多个条件按顺序判断,匹配一个后不再检查后续条件else可以省略,但建议保留作为默认情况if-elif-else比嵌套if更简洁、可读性更强if、elif、else后面都有英文冒号(:)代码块需要缩进(四个空格)应用场景:门票定价、成绩等级、空气质量、BMI计算第1课时回顾:布尔表达式92第3章条件语句·课时回顾布尔类型只有True和False两个值布尔表达式是结果为布尔类型的表达式6个关系运算符:<<=>>===!==是赋值,==是判断相等3个逻辑运算符:andornotand:全真才真,一假则假or:一真则真,全假才假逻辑运算符使用短路求值第2课时回顾:if语句94第3章条件语句·课时回顾if语句根据条件决定是否执行代码块语法:if条件:(冒号结尾)if代码块需要缩进(四个空格)Python使用缩进表示代码块层次求绝对值:ifn<0:abs=n*-1if语句的执行流程:条件为True执行,False跳过第3课时回顾:if-else语句96第3章条件语句·课时回顾if-else:条件为True执行if块,False执行else块if和else后面都有英文冒号判断奇偶数:n%2==0为偶数判断倍数:a%b==0则a是b的倍数动物园门票:if-else实现两段式定价if-else的执行流程图缩进是Python代码块的关键第4课时回顾:if-elif-else98第3章条件语句·课时回顾if-elif-else用于多条件分支判断elif是elseif的缩写条件按顺序判断,匹配后不再检查动物园门票进阶:三段式定价数字比大小:假设最大值法空气质量报告:AQI等级判断BMI计算:健康等级判断本章关键术语100第3章条件语句术语英文解释布尔表达式Booleanexpression结果为布尔类型的表达式关系运算符Relationaloperator比较两个值的运算符逻辑运算符Logicaloperator连接布尔表达式的运算符条件语句Conditionalstatement根据条件执行不同代码短路求值Short-circuit只计算最少表达式的值缩进Indentation表示代码块的层次关系嵌套Nesting在一个语句中包含同类语句本章小结布尔表达式是结果为True或False的表达式关系运算符:<<=>>===!=用于值的比较逻辑运算符:and(与)、or(或)、not(非)and全真才真,or一真则真,not取反if语句根据条件决定是否执行代码块if-else语句:True执行if块,False执行else块if-elif-else语句用于多条件分支Python使用缩进(四个空格)表示代码块if、elif、else后面都有英文冒号(:)应用场景:绝对值、奇偶判断、门票、BMI等课后习题103第3章条件语句1什么是布尔表达式?关系运算符和逻辑运算符各有哪些?2if-else语句的执行流程是什么?画出流程图。3设计一个程序,输入一个整数,判断它是正数、负数还是零。4设计一个程序,输入一个年份,判断它是否为闰年。闰年规则:能被4整除但不能被100整除,或者能被400整除。5设计一个程序,输入三个数,输出其中的最大值。实践练习1:判断正负零105第3章条件语句·实践练习任务实践编写一个程序,输入一个整数,判断它是正数、负数还是零。sign.py#参考代码print("请输入一个整数:")n=int(input())ifn>0:
print(f"{n}是正数")elifn<0:
print(f"{n}是负数")else:
print(f"{n}是零")实践练习2:闰年判断107第3章条件语句·实践练习任务实践编写一个程序,输入一个年份,判断它是否为闰年。规则:能被4整除但不能被100整除,或能被400整除。leap.py#参考代码print("请输入年份:")year=int(input())if(year%4==0
andyear%100!=0)oryear%400==0:
print(f"{year}年是闰年")else:
print(f"{year}年不是闰年")实践练习3:三个数最大值109第3章条件语句·实践练习任务实践编写一个程序,输入三个数,输出其中的最大值。(使用if-elif-else)max2.py#参考代码(使用if-elif-else)a=int(input())b=int(input())c=int(input())ifa>=banda>=c:
print(f"最大值是:{a}")elifb>=aandb>=c:
print(f"最大值是:{b}")else:
print(f"最大值是:{c}")条件语句常见错误111第3章条件语句·实用指南错误错误代码正确代码原因缺少冒号ifn>0ifn>0:if后需要冒号缺少缩进ifn>0:print(n)ifn>0:print(n)代码块需要缩进混淆=和==ifn=0:ifn==0:=是赋值,==是比较else后条件elsen>0:else:else后不能有条件缺少冒号elseelse:else后需要冒号注意最常见的错误:忘记冒号(:)和忘记缩进!在IDLE中,输入if和冒号后,下一行会自动缩进。嵌套if语句详解113第3章条件语句·知识拓展什么是嵌套?嵌套是指在一个if语句的代码块中包含另一个if语句。嵌套if可以处理更复杂的条件判断。nested.py#嵌套if示例ifage>=18:
ifage>=60:
print("老年人")
else:
print("成年人")else:
print("未成年人")提示嵌套层次不宜过深,一般不超过3层。层次过深时建议使用if-elif-else重构。缩进规则详解115第3章条件语句·知识拓展indent_levels.py#缩进层级示例ifcondition1:#第0层statement1#第1层(4空格)
ifcondition2:#第1层statement2#第2层(8空格)
ifcondition3:#第2层statement3#第3层(12空格)statement4#第1层(回到第1层)statement5#第0层(if外)缩进规则同一层级的代码缩进量必须相同。Python使用缩进而非大括号{}来表示代码块。条件中的布尔表达式117第3章条件语句·知识拓展conditions.py#简单条件ifn>0:
print("正数")#复合条件(and)ifage>=0
andage<=120:
print("有效年龄")#复合条件(or)ifscore<60
orscore>100:
print("成绩异常")#使用notif
not(n==0):
print("n不为零")#嵌入表达式ifa+b>c:
print("两边之和大于第三边")流程图绘制指南119第3章条件语句·知识拓展图形含义用途椭圆开始/结束程序的起点和终点矩形处理执行的操作或计算菱形判断条件判断(True/False)平行四边形输入/输出数据的输入和输出箭头流向表示执行方向提示流程图是理解程序执行流程的重要工具。建议在编写复杂条件语句前先画流程图。逻辑运算真值表汇总121第3章条件语句·知识拓展XYXandYXorYnotXTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrueand运算全真才真一假则假Falseandanything=Falseor运算一真则真全假才假Trueoranything=True调试示例:门票程序123第3章条件语句·调试实践bug.py#有Bug的程序age=int(input())ifage<=3
orage>=60:
print("门票0元")ifage>3
andage<18:
print("门票50元")else:
print("门票100元")#输入66,输出:#门票0元#门票100元(错误!)修复方法将第二个if改为elif,使条件按顺序判断,匹配后不再检查后续条件。综合实践:简易计算器125第3章条件语句·综合实践任务综合任务编写一个简易计算器程序:1.输入两个数和一个运算符(+、-、*、/)2.根据运算符进行计算3.输出结果(注意除零错误)calculator.pya=float(input("第一个数:"))b=float(input("第二个数:"))op=input("运算符(+,-,*,/):")ifop=="+":
print(f"{a}+{b}={a+b}")elifop=="-":
print(f"{a}-{b}={a-b}")elifop=="*":
print(f"{a}*{b}={a*b}")elifop=="/":
ifb!=0:
print(f"{a}/{b}={a/b}")
else:
print("错误:除数不能为0")else:
print("不支持的运算符")实践:季节判断127第3章条件语句·实践练习任务实践编写一个程序,输入月份(1-12),输出对应的季节。3-5月:春季,6-8月:夏季,9-11月:秋季,12-2月:冬季season.pyprint("请输入月份(1-12):")month=int(input())ifmonthin[3,4,5]:
print("春季")elifmonthin[6,7,8]:
print("夏季")elifmonthin[9,10,11]:
print("秋季")else:
print("冬季")提示提示:in运算符可以判断一个值是否在列表中,将在后续章节介绍。实践:成绩转GPA129第3章条件语句·实践练习gpa.py#成绩转GPAscore=int(input("请输入成绩(0-100):"))ifscore>=90:gpa=4.0elifscore>=80:gpa=3.0elifscore>=70:gpa=2.0elifscore>=60:gpa=1.0else:gpa=0.0print(f"成绩{score}对应GPA为:{gpa}")运行结果>>>请输入成绩(0-100):88成绩88对应GPA为:3.0教学建议(教师参考)131第3章条件语句·教学参考教学重点布尔表达式的概念关系运算符和逻辑运算符if语句的执行流程if-else和if-elif-else的语法缩进的概念和重要性教学难点=和==的区别短路求值的理解缩进与代码块的关系if-elif-else的执行顺序嵌套if的理解教学策略建议133第3章条件语句·教学参考1.用生活中的判断实例引入条件语句(如天气、年龄判断)2.先画流程图再写代码,培养计算思维3.对比顺序结构和条件结构,理解差异4.强调冒号和缩进的重要性,避免语法错误5.通过Shell交互演示布尔表达式的值6.任务驱动:判断奇偶->门票->BMI7.对比两个if和if-elif-else,理解差异8.鼓励学生画流程图来分析问题学生常见问题135第3章条件语句·教学参考问题原因解决方案忘记冒号不熟悉Python语法强调if/elif/else后必须有冒号缩进错误不理解缩进含义用流程图解释代码块概念混淆=和==数学思维惯性强调=是赋值,==是比较else后加条件对else理解有误说明else是默认情况,不需条件嵌套层次混乱缩进不正确练习缩进层级,使用4空格缩进条件逻辑错误布尔表达式写错先画流程图再写代码本章知识结构图137第3章条件语句·知识结构第3章条件语句第3章条件语句布尔类型关系运算符逻辑运算符if语句if-elseif-elif-else本章测试139第3章条件语句·测试1.以下哪个表达式的值为True?A.2>3B.1==2C.3>=3D.5!=52.TrueandFalse的结果是?A.TrueB.FalseC.NoneD.错误3.not(1<2)的结果是?A.TrueB.FalseC.1D.24.if语句以什么结尾?A.分号;B.句号.C.冒号:D.逗号,本章测试(续)140第3章条件语句·测试1.判断偶数用哪个表达式?A.n%2==1B.n%2==0C.n//2==0D.n/2==02.if-elif-else中,条件匹配后会?A.继续检查后续条件B.不再检查后续条件C.执行所有代码块D.报错3.10%3的结果是?A.3B.1C.0D.3.334.else后面可以跟条件吗?A.可以B.不可以C.有时可以D.必须跟条件实践:三角形类型判断141第3章条件语句·实践练习任务实践输入三角形的三条边长,判断三角形的类型(等边、等腰、一般三角形或不能构成三角形)。triangle.pya=float(input())b=float(input())c=float(input())ifa+b<=cora+c<=borb+c<=a:
print("不能构成三角形")elifa==b==c:
print("等边三角形")elifa==bora==corb==c:
print("等腰三角形")else:
print("一般三角形")实践:人生阶段判断143第3章条件语句·实践练习age_stage.py#人生阶段判断age=int(input("请输入年龄:"))ifage<0:
print("输入错误")elifage<=3:
print("婴幼儿")elifage<=12:
print("儿童")elifage<=18:
print("青少年")elifage<=60:
print("成年人")else:
print("老年人")提示注意:条件按顺序判断,先判断小范围再判断大范围。实践:简易菜单系统145第3章条件语句·实践练习menu.py#简易菜单系统print("===菜单===")print("1.查看成绩")print("2.修改密码")print("3.退出系统")choice=int(input("请选择(1-3):"))ifchoice==1:
print("您的成绩是:95分")elifchoice==2:
print("请输入新密码:")pwd=input()
print("密码修改成功!")elifchoice==3:
print("感谢使用,再见!")else:
print("无效的选择")三种if结构对比147第3章条件语句·知识拓展结构适用场景特点示例if单一条件条件为True执行ifn>0:...if-else二选一True/False各一段ifn%2==0:...else:...if-elif-else多选一按顺序匹配if/elif/elif/else选择建议只有一个条件判断时使用if两种情况二选一时使用if-else三种及以上情况时使用if-elif-else避免使用过多嵌套if,优先使用elif良好编程习惯149第3章条件语句·编程素养1.if/elif/else后务必加上冒号(:)2.保持一致的缩进(4个空格)3.使用==进行比较,不要用=4.else后不要跟条件5.复杂条件使用括号提高可读性6.先画流程图再写代码7.避免过深的嵌套(不超过3层)8.测试代码时覆盖所有条件分支下章预告:循环语句151第3章条件语句·下章预告下一章内容在第4章中,我们将学习循环语句,包括while循环和for循环,让程序能够重复执行代码,处理批量数据。preview.py#循环语句示例n=1whilen<=10:
print(n)n=n+1foriin
range(5):
print("Hello!")第4章将深入学习循环语句→第3章完下一章:循环语句while循环·for循环·range()·break·continue感谢学习第3章条件语句布尔表达式·if-else·if-elif-else面向师范生的Python编程导论布尔表达式在生活中的应用155第3章条件语句·知识拓展年龄判断age>=18判断是否成年成绩判断score>=60判断是否及格温度判断temp>37.3判断是否发烧余额判断balance>=price判断是否可购买密码验证password=='123456'判断密码是否正确范围判断0<=score<=100判断成绩范围复杂条件表达式157第3章条件语句·知识拓展complex_conditions.py#1.闰年判断is_leap=(year%4==0
andyear%100!=0)or(year%400==0)#2.成绩范围验证is_valid=0<=score<=100#3.三角形构成条件is_triangle=(a+b>c)and(a+c>b)and(b+c>a)#4.工作日判断is_weekday=day>=1
andday<=5#5.优秀成绩判断is_excellent=score>=90
andattendance>=0.9提示复杂条件使用括号可以提高可读性,也避免优先级问题。pass语句159第3章条件语句·知识拓展pass语句pass是Python的空语句,不做任何事情。当语法上需要一个语句但不需要执行任何操作时使用。pass.py#pass语句示例ifn>0:
pass
#先占位,之后实现elifn<0:
print("负数")else:
print("零")提示pass常用于先搭建代码框架,后续再填充实现。三元表达式161第3章条件语句·知识拓展三元表达式(条件表达式)Python支持用一行代码实现简单的if-else逻辑,语法:值1if条件else值2ternary.py#传统if-elseifscore>=60:result="及格"else:result="不及格"#三元表达式(简洁版)result="及格"
ifscore>=60
else
"不及格"#更多示例status="偶数"
ifn%2==0
else
"奇数"max_val=aifa>belseb提示三元表达式适合简单的二选一场景,复杂逻辑仍建议使用if-else。条件语句的常见模式163第3章条件语句·知识拓展patterns.py#模式1:默认值+条件修改abs_val=nifn<0:abs_val=-n#模式2:多条件赋值ifscore>=90:grade='A'elifscore>=80:grade='B'else:grade='C'#模式3:条件组合if(a+b>c)and(a+c>b)and(b+c>a):
print("可以构成三角形")条件语句经典算法165第3章条件语句·知识拓展数字提取个位:n%10十位:n//10%10百位:n//100%10判断偶数:n%2==0判断倍数:a%b==0整除判断:n%k==0范围判断成绩:0<=score<=100年龄:0<age<150月份:1<=month<=12温度:-50<=temp<=50正数:n>0负数:n<0测试条件语句的技巧167第3章条件语句·实用技巧1.测试每个条件分支,确保所有路径都被覆盖2.测试边界值:如判断n>0时测试n=0和n=13.测试特殊输入:如负数、零、大数4.用Shell快速验证布尔表达式的值5.在if前用print()输出条件值,帮助调试6.逐步简化复杂条件,定位逻辑错误7.画流程图对比预期执行路径使用IDLE调试条件语句169第3章条件语句·实用技巧debug.py#调试技巧:输出条件值age=int(input())#输出条件值,检查是否正确print(f"age<=3orage>=60:{age<=3orage>=60}")print(f"age>3andage<18:{age>3andage<18}")#根据输出结果判断执行路径ifage<=3
orage>=60:
print("免费")elifage>3
andage<18:
print("50元")else:
print("100元")提示在Shell中先测试布尔表达式的值,确认正确后再写入程序。综合复习171第3章条件语句·综合复习1.以下哪个是正确的if-else语法?A.ifx>0{print(x)}B.ifx>0:print(x)C.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河源市龙川县教育系统招聘教师笔试真题2025
- 消防系统维修保养合同、方案(2026版)
- 中山市小榄镇招聘公办中小学教师笔试真题2025
- 茂名高州市城区学校定向选聘教师笔试真题2025
- (正式版)DB34∕T 1502-2011 《脱水竹笋生产技术规范》
- 2026 年小学秋季开学第一课集会活动防踩踏安全教育
- 2026 年临床护理带教常见问题及改进对策
- 夏季皮肤瘙痒防护护理
- 2025-2026学年陕西省西安市阎良区八年级(下)期中物理试卷(含答案)
- 英语秦淮区六校2025年七年级下册期中试卷(原卷版)
- 2026年心理健康全科专任小学教师招聘考试笔试试题(含答案)
- 2026年新疆第三师图木舒克市高校毕业生“三支一扶”计划招募(347人)笔试参考试题及答案详解
- 2026年三支一扶考试综合基础知识考试卷及答案(六)
- 2026-2030中国减肥市场发展动向分析与未来营销创新策略研究报告
- 高标准农田建设项目监理服务方案投标文件(技术方案)
- 新生儿灌肠操作规范
- 2026年防疫员技师实操题库及评分细则
- 医院供氧中心工作制度
- GB/T 46585-2025建筑用绝热制品试件线性尺寸的测量
- 童话故事创意写作训练教案
- GB/T 25606-2025土方机械产品识别代码系统
评论
0/150
提交评论