版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章对象与人机交互对象2.1人机交互2.2本章小结2.3本章实训2.4本章导读32.1对象5每个数据都抽象为一个对象。数据的存储和管理以对象为单位进行。系统为每个新创建的对象分配一个块内存空间,并用该段内存的首地址编号作为对象的身份标识,此值可以用id()函数获取。2.1对象62.1.1基本数据类型2.1.1基本数据类型7不可变数据类型numeric(数字)string(字符串)tuple(元组)range不允许变量的值发生变化,如果改变了变量的值,就相当于新建了一个对象,其id值或者说其引用的内存地址就会发生变化。可变数据类型list(列表)dictionary(字典)set(集合)可以在原地进行操作,支持插入、删除、更新等方法,不需要重新创建对象就可以修改数据内部的值。2.1.1基本数据类型8表2.1常用数据类型①类型对象示例说明不可变数据类型数值类型整型1024、79整数大小无限制(仅受内存大小限制)浮点型123.45、12.
、23.0、0.78
取值范围:2.2250738585072014×10-308到1.7976931348623157×10308复数a+bja,b均为浮点类型序列类型字符串'1024'
、"test"、'''10test'''"""I'vegotit."Yes,ma'am,"thewaitersaid."""使用成对的单引号、双引号或三引号界定。Rangerange(5)range(1,10,2)
range(stop)返回从0到stop,步长为1的整数序列range(start,stop[,step])返回的从start到stop,步长为step的整数序列,常用于控制循环。元组(1,2,3,4)、(1,2,'a','b')、(1,)用一对圆括号界定,元素间逗号分隔,元素可为任意数据类型。2.1.1基本数据类型9表2.1常用数据类型③类型对象示例说明可变数据类型序列类型列表[1,2,3,4]、[1,2,'a',"b"]用一对方括号界定,元素间逗号分隔,元素可为数字、字符串、列表、元组等任意数据类型。集合集合{1,2,3,4}、{'you','me','he'}用一对大括号界定,元素无顺序,集合中元素具有唯一性,元素间逗号分隔。映射类型字典{'age':40,'name':'zhao'}用一对大括号界定,元素间用逗号分隔,每个元素包括包含“键”和“值”两部分。2.1.2对象属性10<class'int'>
整型1775827913040内存地址500112.1.2对象属性a=3#对象是3,名字是a,值也是3b=5#对象是5,名字是b,值也是5sum_of_ab=a+b#对象是一个表达式,
名字是sum_of_ab,值是8图2.1对象属性num=500名字(name)是给对象附加一个标识符,以方便通过名字引用该对象。名字与其他程序设计语言中的变量作用相似,Python中也经常称之为变量。type(object)函数:返回括号中对象的数据类型,对象一旦创建其类型便不可再变。id(object)函数:返回对象的身份标识,也就是系统为这个对象分配的内存的首地址编号,用一个整数表示。对象创建后,其身份标识id绝对不会改变。value就是这个对象存储的值。#id()和type()函数可用于获取对象的身份标识和类型print(f'身份标识{id(a)},数据类型{type(a)},值为{a}')#身份标识140710807331688,数据类型<class'int'>,值为3print(f'身份标识{id(sum_of_ab)},数据类型{type(sum_of_ab)},值为{sum_of_ab}')#身份标识140710807331848,数据类型<class'int'>,值为8122.1.2对象属性赋值的本质是指将一个名字绑定到一个对象上的操作。赋值符号“=”。变量名=对象。变量名是给对象贴一个用于访问的标签。同一个对象可以命多个名字。Python中先有对象后有名字,所以每个变量在使用前都必须先有值才可以使用。132.1.3赋值x=5
#名字x绑定到整数5上,后面可用变量名x引用整数对象5y='hello'
#名字y绑定到字符串上,后面可用变量名y引用字符串对象'hello'z=[1,2,3,4]
#名字z绑定到列表上,后面可用变量名z引用列表对象[1,2,3,4]x=(16+(8**2-4*6*2)**0.5)/(2*5)
#名字x绑定到表达式求值得到的对象142.1.3赋值5‘hello’[1,2,3,4]xyz2.0不同对象命相同名字时,应用时访问最邻近命名的那个对象。pi=3.141592653589793#圆周率值取3.14radius=6371#地球半径6371公里earth_area=4*pi*radius*radius#计算地球表面积print(f'地球表面积约为{earth_area}平方公里')#地球表面积约为510064471.90978825平方公里radius=12.3#篮球半径12.3厘米,同一个变量名赋不同值,后面代码引用这个新值basketball_area=4*pi*radius*radius#计算篮球表面积print(f'篮球表面积约为{basketball_area}平方厘米')#篮球表面积约为1901.1662102463995平方厘米2.1.3赋值153.1415926535897936371510064471.90978825piradiusEarth_area12.31901.1662102463995basketball_area16多变量同步赋值2.1.3赋值x=1,2#左侧只有1个名字时,右侧必须为1个对象,逗号分隔的多个对象被打包为一个元组print(x)#输出(1,2)x,y=1,2#左侧有2个名字,右侧元组对象中有2个元素1和2,数量相同print(x,y)#输出12,要求右侧对象中元素数量与左侧变量数量相同x,y=[1,2]#左侧有2个名字,右侧列表对象中有2个元素1和2,数量相同print(x,y)#输出12,要求右侧对象中元素数量与左侧变量数量相同x,y,z='abc'#左侧有3个名字,右侧字符串对象中有3个字符,数量相同print(x,y,z)#输出abc,要求右侧对象中字符数量与左侧变量数量相同17同步赋值实现对象交换2.1.3赋值m,n=5,10#m,n=(5,10),将5赋值给m,将10赋值给nprint(m,n)#输出510m,n=n,m#交换变量m和n所指向的对象print(m,n)#输出105510mn把m,n两个标签从5和10上取下来,重新绑定到10和5上。数据对象本身并没有改变,改变的是标签的位置。18增强赋值语句2.1.3赋值符号实例解释=c=
100
c=a+b将数字100命名为c将a+b的运算结果命名为c+=c+=ac=c+a,加-=c-=ac=c–a,减*=c*=ac=c*a,乘/=c/=ac=c/a,除%=c%=ac=c%a,取模**=c**=ac=c**a,//=c//=ac=c//a,整除19海象运算符(Python3.8以后)
variable_name:=
expression2.1.3赋值#输入回车时,input()值是空字符串,空字符串的布尔值为Falsewhileuser_name:=input():#输入回车时,while后条件表达式值为False,结束循环
print(f'你的姓名是{user_name}')#输入不是回车时进入循环执行输出语句运行结果:20大小写字母、数字和下划线数字不能为首字符变量名区分大小写字母常用单词或下划线连接多个小写字母的单词2.1.4变量命名规范3ks=0userks_3
=0numberuser_nameid_checkUSER21简洁且能清晰表达对象意义的名字,便于能阅读和理解2.1.4变量命名规范a=3.14
#无意义变量名b=4
#无意义变量名c=a*(b**2)
#不确定意义的表达式pi=3.14#圆周率radius=4#半径area=pi*(radius**2)#计算圆的面积pi=3.14
#圆周率diameter=4#直径area=pi*((diameter/2)**2)#计算圆的面积22关键字不能用做变量名2.1.4变量命名规范FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryield23内置函数名不能用做变量名2.1.4变量命名规范complex()abs()set()all()dict()min()any()dir()hex()next()divmod()ascii()id()object()sorted()enumerate()bin()input()oct()bool()eval()int()open()str()exec()isinstance()ord()sum()filter()pow()super()bytes()float()iter()print()format()tuple()len()type()chr()frozenset()list()range()vars()zip()reversed()map()max()round()help()24内置函数名不能用做变量名2.1.4变量命名规范sum=0foriinrange(101):
sum=sum+iprint(sum)#正常输出5050print(sum(range(101)))#期望输出5050TypeError:'int'objectisnotcallable2.2人机交互2.2人机交互26输出>=
1输入>=
0print()input()2.2.1输出函数27表达式语句主要用于交互模式,在交互模式下输入变量或表达式将可以直接输出变量或表达式的值。仅用于极少计算或测试时。print()函数内置函数print()可用于交互模式和文件模式。将程序的处理结果以字符的形式输出到显示器或写入到文件中。28print()函数
主要用于将一个对象或多个对象输出到屏幕上。*objects:0个或多个输出对象,,用半角逗号“,”将要输出的多个对象隔开sep:输出的多个对象之间的分隔符,默认用空格分隔end:输出结束时的符号,默认每个输出语句用换行符结束2.2.1输出函数print(*objects,sep='',end='\n')29输出多个对象2.2.1输出函数print(2023,6,16)#输出多个对象时默认用空格分隔,输出2023616print(2023,6,16,sep='/')#sep参数值为字符串'/',输出2023/6/16print(23,59,30,sep=':')#sep参数值为字符串':',输出23:59:30运行结果:30多个print()语句的输出在同一行2.2.1输出函数foriinrange(1,10):#i取值从1到9
print(f'{1}×{i}={1*i}',end='')#输出后不换行,在同一行内输出9个运算式print()#无参数的print()函数中end='\n'起作用,实现换行效果#1×1=11×2=21×3=31×4=41×5=51×6=61×7=71×8=81×9=9运行结果:31str.format()函数主要用于输出格式化字符串。<模版字符串>由字符串和若干个用大括号“{}”表示的替换域组成,大括号用来控制修改字符串中嵌入值出现的位置。format()括号中放置与替换域数量相同的参数值,运行时默认按替参数出现的顺序一一对应填入到前面的替换域中。2.2.1输出函数<模版字符串>.format(<逗号分隔的参数>)32参数值按出现顺序填入替换域2.2.1输出函数a=5b=3print('{}+{}={}'.format(a,b,a+b))#参数值按出现顺序填入替换域,输出5+3=833参数值按序号填入替换域2.2.1输出函数a=5b=3print('{}*{}={}'.format(a,b,a*b))#参数值按出现顺序填入替换域,输出5*3=15print('{2}*{1}={0}'.format(a*b,b,a))#参数序号从0开始编号,依次为:0,1,2,输出5*3=15print('{2}*{0}={1}'.format(b,a*b,a))#括号中序号根据参数序号调整,输出5*3=1534格式化字符串字面值f-strings(Python3.6以后)在字符串开始的引号前加上“f”或“F”,字符串中可放置大括号“{}”作为替换域。输出时,字符串将被原样输出,替换域中的变量或表达式在程序运行时会被变量和表达式的值代替。2.2.1输出函数a=5b=3#将对象a、b的值和a-b的运算结果填入到字符串的替换域{}中输出print(f'{a}-{b}={a-b}')#严格按照字符串格式,输出5-3=235大括号中的变量值可以为任意类型2.2.1输出函数user_name='Tom'gender='male'#传入大括号的对象可以为字符串age=20#传入大括号的对象可以为整数或其他任意类型#将对象user_name、gender、age的值填入到字符串的替换域{}中输出print(f'姓名:{user_name},性别:{gender},年龄:{age}')#输出:姓名:Tom,性别:male,年龄:2036f-strings内外层引号的使用2.2.1输出函数#大括号中的值为字符串时加的引号要与f-string的引号不同print(f'姓名:{"Tom"},性别:{"male"},年龄:{40}')#外面单引号内部双引号print(f"姓名:{'Tom'},性别:{'male'},年龄:{40}")#外面双引号内部单引号#输出:姓名:Tom,性别:male,年龄:20#3.12以前的版本的写法:print(f"""{f'''{f'{f"{1+1}"}'}'''}""")#3.12.0以后可以简单写作:print(f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}")python3.12以前:大括号里面的字符串的引号需使用与f-strings的外层不同的引号。python3.12.0以后:大括号里面的字符串可以使用与括号外面相同的引号。37格式限定符.mf在冒号后面加“.mf”可以控制输出保留浮点数小数点后m位数字。m表示保留小数位数,小数不足m位时末尾补“0”。f表示作用于浮点数(float)对象上。2.2.1输出函数a=5b=3print(f'{a}/{b}={a/b}')#原样输出:5/3=1.6666666666666667print(f'{a}/{b}={a/b:.2f}')#输出保留2位小数:5/3=1.6738input()函数从标准输入设备(键盘)获得用户输入的一行数据,不管用户输入的是字符型还是数字型的数据,input()函数都会将其作为一个字符串类型处理。2.2.2输入函数a=input()#输入一个整数字符串,例如:'5’b=input()#输入一个整数字符串,例如:'3’
#通过input()输入得到的都是字符串,int()函数可将整数字符串转为整数类型,用于数值计算print(type(a))#输出<class'str'>,a的类型是字符串print(a+b)#输出'53','+'作用是将两个字符串拼接为一个字符串print(a*int(b))#输出'555','*'作用是将字符串重复整数b次39split()方法
根据指定分隔符将input()函数获取的字符串对象切分为列表。不加参数时,默认用空格切分对象。指定了分隔符为参数,则用分隔符进行切分。2.2.2输入函数#在同一行内输入鸡和兔的数量,例如输入:1225chicken,rabbit=input().split()#split()参数缺省时,可根据空格将输入切分为列表#chicken,rabbit=input().split(',')#根据逗号(',')将输入切分为列表#计算并输出头和脚的总数head=int(chicken)+int(rabbit)#int()作用是将字符串转为整数feet=int(chicken)*2+int(rabbit)*4print(f'共有头{head}个,脚{feet}只')#输出共有头37个,脚124只40实例说明:日期的常用表示方法有五种,分别是:1.数字型:202306162.年/月/日型:2023/06/163.年-月-日型:2023-06-164.年.月.日型:2023.06.165.年月日型:2023年06月16日在三行中分别输入当前的年、月、日的整数值,按顺序输出上述五种方法表示的日期。2.2.2输入函数思路:input()函数接收用户键盘输入年、月、日分别用三条语句输入print()函数在一行内输出用逗号分隔的多个对象实例2.1日期格式化输出41year=input()#输入当前年,2023month=input()#输入当前月,06date=input()#输入当前日,16print(year,month,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年陕西省引汉济渭工程建设有限公司人员招聘考试题库及详细答案解析
- 孕产妇保健知识宣传总结简报范文
- 2026年四川省成都市实验小学三年级语文第3单元综合测试卷及答案
- 河南省TOP二十名校2026-2027学年高二上学期十月调研考试数学(人教版)试卷(含答案)
- 2026年国网河南省电力公司人员招聘考试题库及详细答案解析
- 2026年中国石油浙江销售分公司人员招聘参考题库及详细答案解析
- 安徽省安庆市望江县部分学校联考2025-2026学年七年级上学期10月月考生物试卷(含解析)
- 2026年河南邮政人员招聘考试参考试题及详细答案解析
- 2026年省投资集团控股有限公司人员招聘考试参考题库及详细答案解析
- 2026年山东发展投资控股集团有限公司人员招聘考试题库及详细答案解析
- 2026全国第二届班组长大赛(国防赛道)初赛理论参考题库(含答案)
- 2026 年脑梗死溶栓治疗护理配合流程课件
- 高中化学人教版选择性必修2 能层与能级 基态与激发态 原子光谱(解析版)课时训练
- 2026版ADA糖尿病诊疗标准指南
- 心存善念行有准则小学主题班会课件
- 胸腔积液患者的胸腔穿刺术后护理
- T-ACEF 216-2025 燃煤锅炉尿素脱硝优化控制系统技术导则
- 城镇燃气调压箱故障应急处置措施
- 2026全球与中国膜曝气生物膜反应器 (MABR)行业现状动态与投资前景预测报告
- 国家康复辅具研究中心附属康复医院聘用人员招聘笔试真题2025
- GB/T 15173-2026电声学声校准器
评论
0/150
提交评论