版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据与运算变量·数据类型·运算符·输入输出面向师范生的Python编程导论本章概述2第2章数据与运算本章将学习Python编程中最核心的基础概念2.1变量变量概念、赋值、命名规则2.2数据类型int/float/str/bool、运算符、类型转换2.3数据的输入与输出input()、print()、f-strings2.4运算符进阶**幂运算、//取整除、%取余数本章学习目标4第2章数据与运算知识目标理解变量的概念与本质掌握变量赋值与命名规则掌握四种基本数据类型理解常见运算符的功能掌握类型转换的方法能力目标熟练使用input()读取数据熟练使用print()输出数据掌握f-strings格式化输出能够编写含运算的程序能够解决实际计算问题本章课时安排(4课时)6第2章数据与运算课时教学内容重点/难点活动设计第1课时变量与赋值、命名规则变量的概念与命名概念讲解+Shell练习第2课时数据类型与运算符类型转换编程实践+任务驱动第3课时input()与print()函数f-strings格式化项目实践第4课时运算符进阶与综合应用//与%运算符综合练习+测试提示建议每课时预留15分钟进行编程实践,让学生在动手编写代码中掌握概念。2.1变量理解变量的概念,掌握变量赋值与命名规则2.1.1变量的概念9第2章数据与运算·2.1变量什么是变量?在Python编程中,变量(variable)是一个非常基础且重要的概念。变量是一种方便理解和记忆的标识符,对应存储某个数据的内存地址。变量可以简单理解为一个名称,程序通过它可以存取、修改内存中的数据。变量的作用存储数据到内存中通过名称访问数据可以随时修改数据方便程序复用数据生活中的类比变量=贴有标签的盒子变量名=盒子的标签变量值=盒子里的物品赋值=往盒子里放物品变量的基本操作11第2章数据与运算·2.1变量Shell>>>n=100>>>n100>>>print(n)100>>>id(n)2446972947792n=100定义变量n,赋值为100输入n即可查看变量值print(n)也可输出值id(n)函数输出变量的内存地址每台计算机结果不同帮助理解变量本质改变变量的值13第2章数据与运算·2.1变量Shell>>>n=100>>>id(n)2446972947792>>>n=99>>>n99>>>id(n)2446972947760变量的本质顾名思义,变量的值是可以变化的。为变量重新赋值即可改变变量的值,本质上是其指向的内存地址发生改变。n=99后,n指向了一个新的内存地址。n=100地址A→重新赋值n=99→n=99地址B2.1.2变量赋值15第2章数据与运算·2.1变量赋值(Assignment)为变量设置值的过程叫作赋值,n=99称为赋值语句,等于号(=)也叫作赋值运算符。赋值语句的本质:将等于号右边的值赋予左边的变量。赋值语句的组成变量名(左)=表达式(右)提示表达式(expression)是可以被求值的代码,即运算后得到一个值的算式。最简单的表达式就是一个值,如100。赋值语句案例17第2章数据与运算·2.1变量代码2.1#代码2.1n=100
#100是最简单的表达式a=2+1
#表达式2+1的值是3,a=3b=2*3
#表达式2*3的值是6,b=6c=a+b#a+b的值是9,c=9赋值语句右边表达式计算结果变量值n=100100100n=100a=2+12+13a=3b=2*32*36b=6c=a+ba+b3+6=9c=9表达式的概念19第2章数据与运算·2.1变量什么是表达式?表达式(expression)是可以被求值的代码,简而言之就是运算后得到一个值的算式。简单表达式1003.14'Hello'True运算表达式2+12*3a+bside*4函数表达式int('10')float('3.14')str(100)input()2.1.3变量的命名21第2章数据与运算·2.1变量命名规则Python的变量名必须由英文字母或下画线开头,并且只能由英文字母、数字、下画线组成。合法的变量名a1_abcx_yageAgeFromfalse不合法的变量名1a-不能以数字开头姓名-不能用中文#a1-不能以#开头-不能有字符.from-是关键字Python3关键字列表23第2章数据与运算·2.1变量变量名不能是Python的关键字(保留字),共35个关键字列表FalseawaitelseimportNonebreakexceptinTrueclassfinallyisandcontinueforlambdaasdeffromnonlocalassertdelglobalnotasyncelififorpassraisereturntrywhilewithyield提示在IDLE中,关键字会显示为橙色。如果变量名显示为橙色,需要更换名称。可用keyword.kwlist查看所有关键字。任务2.1:变量名合法性判断25第2章数据与运算·2.1变量任务2.1下列变量名中,哪些是不合法的,为什么?a1,1a,_abc,x_y,姓名,#a1,,false,From,from,age,Age变量名是否合法原因a1合法1a不合法不能以数字开头_abc合法x_y合法姓名不合法不能用中文#a1不合法不能以#开头不合法不能有字符.false合法首字母小写,与False不同区分大小写27第2章数据与运算·2.1变量大小写敏感Python变量命名区分大小写。变量n和变量N是两个完全不同的变量,因为一个是小写的n,一个是大写的N。Shell>>>n=100>>>N=200>>>print(n)100>>>print(N)200>>>n==NFalse注意age和Age是两个不同的变量!在编程中,同一个字母的大小写被认为是完全不同的字符。变量命名的可读性29第2章数据与运算·2.1变量可读性很重要除命名规则外,还要注意变量名称的可读性,尽可能为变量取一个容易理解的名字。不好的命名a=3.14b=100x1='Tom's=side*4难以理解变量含义好的命名pi=3.14score=100name='Tom'perimeter=side*4一目了然,方便阅读查看所有关键字31第2章数据与运算·2.1变量代码2.2#代码2.2import
keywordprint(keyword.kwlist)运行结果['False','None','True','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']提示如果实在记不住关键字,可以在Shell中运行这行代码查看所有关键字。2.1小结:变量变量是对应内存地址的标识符,用于存储和访问数据赋值语句:变量名=表达式变量名必须由字母或下画线开头,只能包含字母、数字、下画线变量名不能是Python关键字(35个保留字)Python变量名区分大小写(age和Age不同)变量命名应注重可读性,取有意义的名字id()函数可以查看变量的内存地址改变变量值本质是改变了指向的内存地址2.2数据类型掌握int/float/str/bool四种基本类型、常见运算符与类型转换2.2.1基本数据类型35第2章数据与运算·2.2数据类型Python中最常用的四种数据类型i整型整数,如100n=100f浮点型小数,如3.14pi=3.14s字符串型引号内的字符name='Tom'b布尔型True或Falsee=Truetype()函数37第2章数据与运算·2.2数据类型查看变量类型利用Python的type()函数可以查看变量的类型。在Shell中输入type(n),可以输出n的类型。Shell>>>n=100>>>type(n)<class
'int'>>>>pi=3.14>>>type(pi)<class
'float'>>>>name="Tom">>>type(name)<class
'str'>提示class可以理解为类型,int表示整数(integer的缩写),float表示浮点数,str表示字符串(string的缩写)。整型int39第2章数据与运算·2.2数据类型整型(int)整型就是整数类型,包括正整数、负整数和零。在Python中,整数的大小没有限制。Shell>>>n=100>>>type(n)<class
'int'>>>>a=-5>>>type(a)<class
'int'>>>>b=0>>>type(b)<class
'int'>整型的特点int类型可以参与加(+)、减(-)、乘(*)、除(/)等数学运算。注意:除法运算的结果总是float类型。浮点型float41第2章数据与运算·2.2数据类型浮点型(float)浮点数表示带有小数点的数,英文全称是floatingpointnumber。计算机用科学记数法表示小数,当改变指数时,小数点会浮动。在Python中有小数点的数就是float类型。代码2.3#代码2.3pi=3.14print(type(pi))#<class'float'>n=100.0print(type(n))#<class'float'>注意注意:100.0也是float类型!只要包含小数点,就是浮点数。即使数学上100.0等于100,但类型不同。字符串型str43第2章数据与运算·2.2数据类型字符串型(str)字符串类型指包含在引号之间的字符系列。str是英文string的缩写。英文单引号和双引号都可以定义字符串。代码2.4#代码2.4name="Tom"print(type(name))#<class'str'>message='HelloWorld!'print(type(message))#<class'str'>age='18'print(type(age))#<class'str'>注意注意:age='18'也是str类型!无论引号中的字符是什么数据类型,都会被定义为字符串。布尔型bool45第2章数据与运算·2.2数据类型布尔型(bool)布尔类型的数据只有两个值:True和False。注意首字母都是大写的。下一章将详细介绍bool类型。Shell>>>a=True>>>type(a)<class
'bool'>>>>b=False>>>type(b)<class
'bool'>>>>3>1True>>>9<1False任务2.2定义两个bool类型的变量,其值分别为True和False,然后输出其类型,并自行分析输出结果。四种数据类型综合案例47第2章数据与运算·2.2数据类型代码2.5#代码2.5四种数据类型综合#变量a的值是10,a的类型是整数inta=10#变量b的值是3.14,b的类型是浮点数floatb=3.14#变量c的值是"Hi",c的类型是字符串strc="Hi"#变量d的值是'10',d的类型也是字符串strd='10'#变量e的值是True,e的类型是布尔型boole=True提示#开头的信息是代码注释(comment),注释不影响代码执行,主要作用是帮助理解代码的含义。数据类型对比表49第2章数据与运算·2.2数据类型类型关键字示例说明可否运算整型int100,-5,0整数可以浮点型float3.14,100.0小数可以字符串型str'Tom',"Hi"引号内的字符拼接/重复布尔型boolTrue,False真/假逻辑运算类型对比要点int和float可以互相转换:int(3.14)=3,float(10)=10.0str可以转换为int或float:int('100')=100,float('3.14')=3.14100是int类型,100.0是float类型,虽然值相等但类型不同'18'是str类型,18是int类型,虽然看起来相似但类型不同2.2.2常见运算符51第2章数据与运算·2.2数据类型数学运算符计算机程序的重要功能是进行数学计算。int和float两种类型适用于常见运算符:+(加)、-(减)、*(乘)、/(除)。运算符含义示例结果说明+加法2+35整数加整数=整数-减法10-46整数减整数=整数*乘法3*412整数乘整数=整数/除法10/52.0除法结果总是float=赋值a=100赋值运算符注意重要:除法运算(/)的结果总是float类型,无论数学计算结果是否为整数。10/5的结果是2.0而不是2!任务2.3:正方形周长53第2章数据与运算·2.2数据类型任务2.3设计一个程序,能够根据正方形的边长求出正方形的周长,并输出结果。代码2.6#代码2.6#设置边长side=3#计算周长c=side*4#输出结果print("正方形的周长是:",c)运行结果>>>正方形的周长是:12print()输出多个值55第2章数据与运算·2.2数据类型逗号分隔多个值print()函数的括号中可以有多个元素,使用英文逗号(,)隔开。输出时各元素之间默认用空格分隔。print_multi.py#输出字符串和变量print("正方形的周长是:",c)#输出结果:正方形的周长是:12#输出多个值name='Jim'print('Hello',name)#输出结果:HelloJimprint('A','B','C')#输出结果:ABC提示print()函数用英文逗号分隔多个值,输出时各值之间会有一个空格。任务2.4:正方形周长和面积57第2章数据与运算·2.2数据类型任务2.4在代码2.6的基础上优化程序,使程序能够根据正方形的边长,输出正方形的周长和面积。参考代码#参考代码#设置边长side=3#计算周长和面积c=side*4s=side*side#输出结果print("正方形的周长是:",c)print("正方形的面积是:",s)运行结果>>>正方形的周长是:12正方形的面积是:9任务2.5:梯形面积59第2章数据与运算·2.2数据类型任务2.5已知梯形的上底和下底分别为a、b,高度为h,设计一个程序求梯形的面积A,并输出计算结果。梯形面积公式:A=(a+b)*h/2代码2.7#代码2.7a=2b=3h=4#计算梯形面积A=(a+b)*h/2#输出结果print("该梯形的面积是:",A)运行结果>>>该梯形的面积是:10.0运算符优先级61第2章数据与运算·2.2数据类型优先级运算符说明示例1(最高)()括号(a+b)*h2**幂运算2**33*/乘、除4+-加、减5(最低)=赋值c=a+b优先级示例(a+b)*h/2先算括号内的a+b,再乘以h,最后除以2side*4先算乘法,再赋值给变量ca+b*2先算b*2,再算a+(b*2),因为乘法优先级高于加法2.2.3类型转换63第2章数据与运算·2.2数据类型为什么需要类型转换?在第1章的人机互动程序中,我们使用了input()函数。input()函数读取的数据始终是字符串类型,需要进行类型转换才能进行数学运算。代码2.8#代码2.8-有问题的程序print('请输入正方形的边长:')side=input()c=side*4print("正方形的周长是:",c)运行结果(错误)>>>请输入正方形的边长:3正方形的周长是:3333input()返回字符串的问题65第2章数据与运算·2.2数据类型问题分析运行结果不是12而是3333!原因是input()函数读取的数据始终是字符串类型。输入数字3时,input()读取到的是字符串'3',而字符串与整数相乘会复制自身。代码2.9#代码2.9验证input()的返回类型a=input()print(type(a))#<class'str'>b=a*3print(b)#输入3,输出333注意input()函数的返回值始终是字符串类型!无论用户输入什么数据,都会被判定为str类型。int()函数67第2章数据与运算·2.2数据类型int()函数要将字符串转换为整数,需要使用int()函数。可以将字符串或小数转换为整数。代码2.10#代码2.10n='100'print(type(n))#<class'str'>print(n*2)#100100#将n转换为int类型n=int(n)print(type(n))#<class'int'>print(n*2)#200提示赋值语句n=int(n)的执行过程:先用int()函数将n转换为整数类型,再赋值给变量n。修复正方形周长程序69第2章数据与运算·2.2数据类型代码2.11#代码2.11使用int()修复#读取边长print('请输入正方形的边长:')side=input()side=int(side)#类型转换!#计算周长c=side*4#输出结果print("正方形的周长是:",c)运行结果>>>请输入正方形的边长:3正方形的周长是:12注意如果输入3.5,程序会报错!因为字符串'3.5'不能直接用int()转换。这时需要使用float()函数。float()函数71第2章数据与运算·2.2数据类型float()函数float()函数可以将字符串或整数转换为浮点数(小数)。代码2.12#代码2.12使用float()函数#读取边长print('请输入正方形的边长:')side=input()side=float(side)#转换为浮点数#计算周长c=side*4#输出结果print("正方形的周长是:",c)运行结果>>>请输入正方形的边长:3.5正方形的周长是:14.0str()函数73第2章数据与运算·2.2数据类型str()函数str()函数可以将数字转换为字符串。反向转换也是可行的。代码2.13#代码2.13n=100pi=3.14#转换为str后输出其类型n=str(n)print(type(n))#<class'str'>pi=str(pi)print(type(pi))#<class'str'>Shell验证>>>n=100>>>n100>>>str(n)'100'类型转换总结75第2章数据与运算·2.2数据类型代码2.14#代码2.14类型转换总结#int()函数可以将字符串或小数转换成整数a=int('10')#a=10b=int(3.14)#b=3#float()函数可以把字符串或整数转换成浮点数c=float('3.14')#c=3.14d=float(10)#d=10.0#str()函数可以把数字转换成字符串e=str(10)#e='10'f=str(3.14)#f='3.14'转换函数功能示例结果int()字符串/小数->整数int('10'),int(3.14)10,3float()字符串/整数->浮点数float('3.14'),float(10)3.14,10.0str()数字->字符串str(10),str(3.14)'10','3.14'类型转换的常见错误77第2章数据与运算·2.2数据类型错误信息>>>int('3.5')Traceback(mostrecentcalllast):File"<pyshell>",line1,in<module>
int('3.5')ValueError:invalidliteralforint()
withbase10:'3.5'错误原因分析int()只能转换表示整数的字符串,如'100'字符串'3.5'包含小数点,int()无法直接转换解决方法:先用float()转换,再用int()转换:int(float('3.5'))int(3.14)可以正常执行,结果是3(截断小数部分)2.2小结:数据类型Python有四种基本数据类型:int、float、str、booltype()函数可以查看变量的类型int是整数,float是小数,str是字符串,bool是True/False100是int类型,100.0是float类型,'100'是str类型常见运算符:+(加)、-(减)、*(乘)、/(除)除法运算(/)的结果总是float类型int()、float()、str()函数可以实现类型转换input()函数的返回值始终是字符串类型2.3数据的输入与输出掌握input()函数、print()函数和f-strings格式化输出2.3.1input()函数81第2章数据与运算·2.3输入与输出input()函数回顾前面我们已经使用过input()函数来读取用户输入的数据。input()函数的返回值始终是字符串类型,需要类型转换才能进行数学运算。代码2.15#代码2.15input()带提示信息name=input("Whatisyourname?")print("Hello",name)使用建议本书推荐print()负责输出提示信息,input()只负责读取数据,这样代码职责更清晰。任务2.6:圆的周长83第2章数据与运算·2.3输入与输出任务2.6设计一个程序,输入一个整数表示圆的半径,程序输出圆的周长。代码2.16#代码2.16#输入数据print("请输入一个整数表示圆的半径:")r=input()#转换类型r=int(r)#计算周长c=2*r*3.14#输出结果print("圆的周长=",c)运行结果>>>请输入一个整数表示圆的半径:3圆的周长=18.84任务2.7:梯形面积(输入版)85第2章数据与运算·2.3输入与输出任务2.7设计一个程序,由用户输入梯形的上底、下底和高,然后计算并输出梯形的面积A。代码2.17#代码2.17print("请输入梯形的上底、下底和高,每行一个数据:")a=input()a=int(a)b=input()b=int(b)h=input()h=int(h)#计算梯形面积A=(a+b)*h/2#输出结果print("该梯形的面积是:",A)优化:一行代码实现输入与转换87第2章数据与运算·2.3输入与输出优化思路input()的返回值是字符串,而int()可以接受字符串参数。将input()作为int()的参数,可以一行代码实现读取和转换。代码2.18#代码2.18优化后的程序print("请输入梯形的上底、下底和高,每行一个数据:")a=int(input())#一行实现读取和转换b=int(input())h=int(input())#计算梯形面积A=(a+b)*h/2#输出结果print("该梯形的面积是:",A)任务2.8优化代码2.18,使其能够读取浮点数作为输入数据,并准确计算梯形的面积。2.3.2print()函数89第2章数据与运算·2.3输入与输出print()函数的重要性对于任何一个程序来说,数据的输出是一个必要条件。如果程序没有输出任何数据,用户就无法确定程序实现的功能。代码2.19#最简单的print():输出空行print()#end参数:默认值为\n(换行符)#设置end为空字符串可以不换行print('Hello',end="")print('Jim')#输出:HelloJimprint('Hello')print('Jim')#输出两行:Hello/Jimsep参数91第2章数据与运算·2.3输入与输出sep参数print()函数包含一个sep参数,默认值为空格。当输出多个值时,sep分隔符也会输出,用于分隔各值。代码2.21#代码2.21name='Jim'#设置sep为三个+print('Hello',name,sep="+++")#输出:Hello+++Jim#设置sep为空print('A','B','C',sep="")#输出:ABC提示sep是separator的缩写,含义是分隔符。可以通过设置sep参数来控制输出值之间的分隔方式。任务2.9:格式化输出圆的信息93第2章数据与运算·2.3输入与输出任务2.9设计一个程序,由用户输入一个整数表示圆的半径,程序计算圆的周长,并输出如下信息(假设用户输入2):圆的半径为2,其周长=12.56。代码2.22#代码2.22print("请输入一个整数表示圆的半径:")r=input()r=int(r)c=2*r*3.14#使用sep参数控制输出格式print("圆的半径为",r,"其周长=",c,sep="")运行结果>>>请输入一个整数表示圆的半径:2圆的半径为2其周长=12.56重要注意事项95第2章数据与运算·2.3输入与输出注意使用print()函数输出变量的值时,千万不可将其放入引号中!对比#错误写法:变量名在引号中name="Tom"print("Hello,name!")#输出:Hello,name!(不是Hello,Tom!)#正确写法:变量名在引号外print("Hello,",name)#输出:Hello,Tom原因引号内的内容被视为普通字符串,不会被当作变量名。变量名必须放在引号外才能输出其值。2.3.3f-strings格式化输出97第2章数据与运算·2.3输入与输出什么是f-strings?f-strings也叫格式字符串,f表示format(格式)。格式字符串比普通字符串前多一个英文字母f,同时利用花括号{}将变量嵌入字符串中。Python3.6及以上版本可用。代码2.24#代码2.24f-strings基本用法name="小明"age=18print(f'我叫{name},我今年{age}岁!')运行结果>>>我叫小明,我今年18岁!f-stringsvs传统print()99第2章数据与运算·2.3输入与输出对比使用f-strings后,代码不仅得到简化,可读性也得到增强。代码对比#代码2.23传统写法(复杂)print("圆的半径为",r,",其周长=",c,"。",sep="")#代码2.25使用f-strings(简洁)print(f"圆的半径为{r},其周长={c}。")传统写法缺点代码结构复杂需要设置sep参数容易遗漏逗号f-strings优点代码简洁易读变量直接嵌入无需设置sep任务2.10:正方形周长、面积和对角线101第2章数据与运算·2.3输入与输出任务2.10用户输入一个整数表示正方形的边长,程序输出正方形的周长、面积和对角线长度。代码2.26#代码2.26import
mathprint("请输入一个整数表示正方形的边长:")side=int(input())p=side*4
#周长s=side*side#面积d=side*math.sqrt(2)#对角线print(f"正方形的周长为:{p}")print(f"正方形的面积为:{s}")print(f"正方形的对角线为:{d}")math程序包103第2章数据与运算·2.3输入与输出什么是程序包(模块)?程序包也叫模块(module),是已经编写好的程序集合,可以简单理解为一个工具箱。sqrt()函数是这个工具箱中用于求解平方根的工具。math_example.py#导入math程序包import
math#使用sqrt()函数求平方根result=math.sqrt(2)print(result)#1.4142135623730951#sqrt是squareroot的缩写提示使用import语句导入程序包后,就可以使用该程序包中的函数。格式:模块名.函数名()f-strings格式化参数105第2章数据与运算·2.3输入与输出设置格式化参数在变量后面添加英文冒号(:),然后设置输出格式。例如{d:.2f}表示保留两位小数。代码2.27#代码2.27#保留两位小数print(f"正方形的对角线为:{d:.2f}")#输出:正方形的对角线为:4.24#保留三位小数print(f"正方形的对角线为:{d:.3f}")#输出:正方形的对角线为:4.243.2f的含义.2f:小数点后固定位数为2,f表示fixedpointnumber(固定小数位数)设置输出宽度与对齐107第2章数据与运算·2.3输入与输出代码2.28#代码2.28#总宽度为8print(f"正方形的周长为:{p:8}")print(f"正方形的面积为:{s:8}")#总宽度为6,保留两位小数print(f"正方形的对角线为:{d:6.2f}")运行结果(右对齐)>>>请输入一个整数表示正方形的边长:3正方形的周长为:12正方形的面积为:9正方形的对角线为:4.24提示设置总宽度后,数据会靠右对齐。{p:8}表示总宽度8个字符。{d:6.2f}表示总宽度6,保留2位小数。任务2.11:f-strings探索109第2章数据与运算·2.3输入与输出任务2.11上网检索Pythonf-strings的相关信息,阅读其格式化参数的使用说明与相关案例,并在代码中尝试相关配置,深入了解这一强大的格式化输出工具。格式含义示例输出效果{x}直接输出f'{pi}'3.14{x:.2f}保留2位小数f'{pi:.2f}'3.14{x:.3f}保留3位小数f'{pi:.3f}'3.140{x:8}总宽度8f'{n:8}'100{x:6.2f}宽6保留2位f'{d:6.2f}'4.242.3小结:数据的输入与输出input()函数读取用户输入,返回值始终是字符串类型int(input())可以一行代码实现读取和类型转换print()函数的end参数控制输出结尾(默认换行)print()函数的sep参数控制多值之间的分隔符(默认空格)f-strings格式字符串:f'...{变量}...',简洁易读{d:.2f}表示保留2位小数{p:8}表示总宽度8,数据右对齐importmath导入数学模块,math.sqrt()求平方根2.4运算符进阶掌握**幂运算、//取整除、%取余数运算符2.4.1**幂运算符113第2章数据与运算·2.4运算符进阶幂运算符**双乘号(**)是幂运算符,a**b可以求解a的b次方的值。利用幂运算符,可以非常简便地进行幂运算。Shell>>>2**38>>>2**101024>>>3**29>>>10**-10.1>>>4**0.52.0提示幂设置为小于1的数可以进行开方运算:4**0.5=2.0,即4的平方根。任务2.12:球的体积115第2章数据与运算·2.4运算符进阶任务2.12已知球体半径为r,设计一个程序求解球的体积V,并输出计算结果。V=(4/3)*3.14*r^3代码2.29#代码2.29print("请输入一个数表示球体半径:")r=float(input())#不使用幂运算符V1=(4/3)*3.14*r*r*r#使用幂运算符V2=(4/3)*3.14*r**3#输出数据print(f"球的体积为:{V1:.3f}")print(f"球的体积为:{V2:.3f}")提示对比两种写法:幂运算可读性更强,更好地还原了数学公式。幂运算替代sqrt()117第2章数据与运算·2.4运算符进阶幂运算的用途幂运算可以替代math.sqrt()进行开方运算,使代码更加简洁。代码2.30#代码2.30使用幂运算替代sqrtprint("请输入一个整数表示正方形的边长:")side=int(input())p=side*4
#周长s=side*side#面积d=side*2**0.5
#对角线(用幂运算开方)print(f"正方形的周长为:{p}")print(f"正方形的面积为:{s}")print(f"正方形的对角线为:{d:.2f}")对比2**0.5等价于math.sqrt(2),但无需导入math模块,代码更简洁。2.4.2//取整除运算符119第2章数据与运算·2.4运算符进阶取整除运算符//双除号(//)运算符可以求解两个数相除商的整数部分,也叫取整除运算符。Shell>>>10//52>>>10//33>>>5//22>>>10//0.333.0>>>3.5//0.75.0>>>5.3//22.0规则如果除数与被除数都是int,结果为int;如果有float,结果为float。结果是最接近商的整数,不是四舍五入。任务2.13:求十位数字121第2章数据与运算·2.4运算符进阶任务2.13用户输入一个两位数,设计一个程序输出其十位上的数字。例如,用户输入25,程序输出2;用户输入87,程序输出8。解题思路十位上的数字可以理解为这个两位数由几个10组成。将这个两位数除以10,获得商的整数部分即可。代码2.31#代码2.31print("请输入一个两位数:")n=int(input())a=n//10print(f"{n}十位上的数字为{a}")运行结果>>>请输入一个两位数:2525十位上的数字为22.4.3%取余数运算符123第2章数据与运算·2.4运算符进阶取余数运算符%%运算符可以计算两个数相除的余数,也称作取模运算符。a%b的值就是a除以b的余数。Shell>>>10%50>>>10%31>>>5%21>>>17%52>>>100%72注意注意:在Python中,%是一个运算符,并不是数学意义上的百分号!任务2.13:求余数125第2章数据与运算·2.4运算符进阶任务2.13用户输入两个整数a、b,设计一个程序输出a除以b的余数。代码2.32#代码2.32print("请输入两个整数,每行一个:")a=int(input())b=int(input())c=a%bprint(f"{a}除以{b}的余数为:{c}")运行结果>>>请输入两个整数,每行一个:10310除以3的余数为:1任务2.14:求个位数字127第2章数据与运算·2.4运算符进阶任务2.14用户输入一个整数,设计一个程序输出这个数的个位上的数字。思路1:先求十位以上部分,再相减思路1#代码2.33思路1n=int(input())m=n//10x=n-m*10print(f"{n}的个位数字为:{x}")思路2:直接取余数思路2#代码2.34思路2n=int(input())x=n%10print(f"{n}的个位数字为:{x}")两种思路的对比129第2章数据与运算·2.4运算符进阶运行结果>>>请输入一个整数:1234512345的个位数字为:5思路1分析先求n//10得到十位以上部分m再用n-m*10得到个位数字逻辑符合思维习惯但代码较复杂需要3行计算思路2分析直接用n%10得到个位数字整数除以10的余数就是个位代码更加简洁只需要1行计算推荐使用这种方法任务2.15:两位数数字之和131第2章数据与运算·2.4运算符进阶任务2.15用户输入一个两位数,设计一个程序输出这个两位数的个位和十位数字之和。例如:用户输入25,程序输出7。输入两位数n→a=n//10十位数字→b=n%10个位数字→m=a+b求和代码2.35#代码2.35print("请输入一个两位数:")n=int(input())a=n//10
#十位上的数字b=n%10
#个位上的数字m=a+bprint(f"两位数{n}的两个数字之和为:{m}")2.4小结:运算符进阶**幂运算符:a**b求a的b次方幂运算可以开方:4**0.5=2.0//取整除运算符:求商的整数部分10//3=3,结果是整数部分,不是四舍五入%取余数运算符:求两数相除的余数10%3=1,即10除以3余1n//10求十位数字,n%10求个位数字解决同一个问题可以尝试不同的思路第1课时回顾:变量134第2章数据与运算·课时回顾变量是存储数据的标识符,对应内存地址赋值语句:变量名=表达式变量名由字母或下画线开头,只能包含字母、数字、下画线变量名不能是Python关键字(35个保留字)Python变量名区分大小写id()函数查看变量内存地址变量命名应注重可读性第2课时回顾:数据类型136第2章数据与运算·课时回顾四种基本数据类型:int、float、str、booltype()函数查看变量类型int是整数,float是小数,str是字符串,bool是True/False常见运算符:+、-、*、/(除法结果总是float)int()、float()、str()函数进行类型转换input()返回值始终是字符串类型int(input())一行实现读取和转换第3课时回顾:输入与输出138第2章数据与运算·课时回顾input()函数读取用户输入,返回字符串print()函数的end参数控制输出结尾print()函数的sep参数控制分隔符f-strings格式字符串:f'...{变量}...'{d:.2f}保留两位小数{p:8}设置总宽度,数据右对齐importmath导入模块,math.sqrt()求平方根第4课时回顾:运算符进阶140第2章数据与运算·课时回顾**幂运算符:2**10=1024//取整除运算符:10//3=3%取余数运算符:10%3=1n//10求十位数字,n%10求个位数字幂运算可替代sqrt:4**0.5=2.0解决同一问题可尝试不同思路化繁为简是编程的重要法则运算符优先级完整表142第2章数据与运算·知识拓展优先级运算符描述示例结果1(最高)()括号(2+3)*4202**幂运算2**383+x,-x正负号-5-54*,/,//,%乘除取整取余10//335(最低)+,-加减2+356=赋值a=10提示记忆口诀:括号最优先,幂运算第二,乘除取整取余第三,加减最后,赋值垫底。常见错误与解决方法144第2章数据与运算·实用指南错误类型错误信息原因解决方法值错误ValueError字符串无法转换检查输入数据格式类型错误TypeError不兼容类型操作检查数据类型名称错误NameError使用未定义变量检查变量是否已定义零除错误ZeroDivisionError除数为0检查除数是否为0属性错误AttributeError对象没有该属性检查方法名提示遇到错误不要慌!仔细阅读错误信息,通常能找到问题所在。教学建议(教师参考)146第2章数据与运算·教学参考教学重点变量的概念与赋值四种数据类型的区分input()返回值为字符串类型转换的使用场景f-strings格式化输出教学难点理解变量与内存地址的关系100是int但100.0是floatinput()返回字符串的问题运算符优先级的理解//和%运算符的灵活应用本章关键术语148第2章数据与运算术语英文解释变量variable存储数据的标识符数据类型type数据的类型属性赋值语句assignment将值赋予变量的语句运算符operator进行运算的符号表达式expression可以被求值的代码input()函数input()读取用户输入print()函数print()输出数据到屏幕f-stringsf-strings格式化字符串本章小结变量是编程的核心概念,几乎所有程序都要用到变量赋值语句:变量名=表达式Python有四种基本数据类型:int、float、str、booltype()函数查看变量类型,type()是编程常用工具常见运算符:+、-、*、/,除法结果总是float类型转换:int()、float()、str()函数input()返回字符串,需要类型转换才能进行数学运算print()函数的sep和end参数控制输出格式f-strings格式化输出:f'...{变量}...'**幂运算、//取整除、%取余数课后习题151第2章数据与运算1变量的命名规则是什么?2设计一个程序,输入数据为三角形的底和高,输出三角形的面积。3海伦公式可以根据三角形的三条边长计算出三角形的面积。设计一个程序,输入数据为三角形的三边长度,输出三角形的面积。4华氏度与摄氏度的关系为:F=32+C*1.8。请设计一个华氏度转换为摄氏度的程序。5一元二次方程的一般形式为:ax^2+bx+c=0。设计一个程序,输入数据为方程的三个系数a、b、c,输出数据为方程的两个根。实践练习1:三角形面积153第2章数据与运算·实践练习任务实践编写一个Python程序,输入三角形的底和高,计算并输出三角形的面积。面积=底*高/2triangle.py#参考代码print("请输入三角形的底:")base=float(input())print("请输入三角形的高:")height=float(input())area=base*height/2print(f"三角形的面积为:{area:.2f}")实践练习2:温度转换155第2章数据与运算·实践练习任务实践编写一个Python程序,输入摄氏度,输出对应的华氏度。F=32+C*1.8temp.py#参考代码print("请输入摄氏度:")C=float(input())F=32+C*1.8print(f"华氏度为:{F:.1f}")运行结果>>>请输入摄氏度:100华氏度为:212.0实践练习3:一元二次方程157第2章数据与运算·实践练习任务实践编写一个Python程序,输入一元二次方程的三个系数a、b、c,输出方程的两个根。x=(-b+/-sqrt(b^2-4ac))/(2a)equation.pyimport
mathprint("请输入三个系数a,b,c:")a=float(input())b=float(input())c=float(input())delta=b**2-4*a*cx1=(-b+math.sqrt(delta))/(2*a)x2=(-b-math.sqrt(delta))/(2*a)print(f"x1={x1:.2f}")print(f"x2={x2:.2f}")Shell中的数字运算探索159第2章数据与运算·知识拓展Shell运算>>>7+310>>>7-34>>>7*321>>>7/32.3333333333333335>>>7//32>>>7%31>>>2**101024>>>2**0.51.4142135623730951运算符含义示例结果说明+加法7+310-减法7-34*乘法7*321/除法7/32.333...结果为float//取整除7//32商的整数部分%取余数7%31相除的余数**幂运算2**1010242的10次方字符串的基本操作161第2章数据与运算·知识拓展string_ops.py#字符串拼接(+)>>>"Hello"+"World"'HelloWorld'#字符串重复(*)>>>"Hi"*3'HiHiHi'#字符串与整数不能直接相加>>>"Age:"+18TypeError#需要类型转换>>>"Age:"+str(18)'Age:18'提示字符串可以使用+进行拼接,使用*进行重复。但字符串不能与数字直接相加,需要先用str()转换。赋值的多种形式163第2章数据与运算·知识拓展assignment.py#基本赋值a=10#多重赋值a=b=c=0#多变量赋值x,y,z=1,2,3#交换变量值a,b=b,a#表达式赋值result=a+b*2多重赋值Python支持一行代码为多个变量赋值,如x,y=1,2,也可以x,y=y,x交换变量值。输入输出综合示例165第2章数据与运算·综合应用student.py#综合示例:学生信息录入print("===学生信息录入===")name=input("请输入姓名:")age=int(input("请输入年龄:"))score=float(input("请输入成绩:"))print(f"\n===学生信息===")print(f"姓名:{name}")print(f"年龄:{age}岁")print(f"成绩:{score:.1f}分")print(f"评价:{'优秀'ifscore>=90else'良好'}")运行结果>>>===学生信息录入===请输入姓名:小明请输入年龄:18请输入成绩:95.5===学生信息===姓名:小明年龄:18岁成绩:95.5分评价:优秀初学者常见错误167第2章数据与运算·实用指南错误错误代码正确代码原因中文标点name=“Tom”name="Tom"必须用英文引号变量在引号中print("name")print(name)引号内是字符串未转换类型side*4int(side)*4input返回str混淆=和==ifa=b:ifa==b:=是赋值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市某中学2025-2026学年七年级下学期4月定时训练英语试卷(含答案)
- 中国武术概论考试题目与答案
- 基本生命支持考试题目及答案
- 禁毒试题及答案
- 社会治理试题及答案
- 休克试题及答案简单
- 2026年护理专业急救技能实训考核试卷
- 2025-2026学年黑河市嫩江县数学三下期中质量跟踪监视模拟试题(含答案)
- 2026年江苏省人教版高中数学选修第4册第9单元综合测试卷
- 2026年福建省北师大版小学英语第3册阅读理解习题集
- 医院网络安全意识培训课件
- 男装店长核心职责培训
- 银行从业人员法律培训大纲
- 弥漫性大B细胞淋巴瘤病例讨论
- T/CSWSL 007-2019饲料原料酵母水解物
- 儿童自闭症康复中心项目商业计划书
- 莱州市月季产业发展规划(2018-2022年)
- 《危化品“一件事”全链条重点工作任务分工清单》知识培训
- TSG21-2025固定式压力容器安全技术(送审稿)
- 六年级下册字帖笔顺
- 中世纪欧洲大学的兴起与发展
评论
0/150
提交评论