版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python3基础教程第3版慕课版单元2
Python基本语法任务2-1:运行诗词输出程序【任务目标】编写Python程序,输出诗词《咏柳》或《静夜思》。待运行程序代码如下。a=input('请输入一个数:')ifa=='1':print('咏柳')print('贺知章')print('碧玉妆成一树高,万条垂下绿丝绦。')print('不知细叶谁裁出,二月春风似剪刀。')else:print('静夜思')print('李白')print('床前明月光,疑是地上霜。')print('举头望明月,低头思故乡。')【任务实施】演示过程……2.1基本语法元素本节主要内容:缩进注释语句续行符号语句分隔符号关键字标识符2.1.1缩进Python默认从程序的第一条语句开始,按顺序依次执行各条语句。代码块可视为复合语句。在Java、C/C++等语言中,用大括号“{}”表示代码块,示例代码如下。if(x>0){y=1;}else{y=-1;}Python使用缩进(空格)来表示代码块,连续的多条具有相同缩进量的语句为一个代码块。通常,语句末尾的冒号表示代码块的开始,例如if、for、while、def、class等语句都会使用到代码块。示例代码如下。ifx>0:y=1else:y=-1应注意同一个代码块中的语句,其缩进量应保持相同,否则会发生IndentationError(缩进错误)异常,示例代码如下。>>>x=1>>>ifx>0:...y=1...print(y)File"<stdin>",line3print(y)^IndentationError:unindentdoesnotmatchanyouterindentationlevel2.1.2注释注释用于为程序添加说明性的文字,帮助程序员阅读和理解代码。Python解释器会忽略注释的内容。Python注释分单行注释和多行注释。单行注释以符号“#”开始,当前行中符号“#”及其后的内容为注释。单行注释可以单独占一行,也可放在语句末尾。多行注释是用3个英文的单引号“'''”或3个双引号“"""”作为注释的开始和结束符号示例代码如下。"""多行注释开始下面的代码根据变量x的值计算y注意代码中使用缩进表示代码块多行注释结束"""x=5ifx>100:y=x*5-1 #单行注释:x>100时执行该语句else:y=0 #x<=100时执行该语句print(y) #输出y2.1.3语句续行符号通常,Python中的一条语句占一行,没有语句结束符号。可使用语句续行符号将一条语句写在多行之中。Python的语句续行符号为“\”示例代码如下。ifx<100\andx>10:y=x*5-1else:y=0注意,在“\”符号之后不能有任何其他符号,包括空格和注释。还有一种特殊的续行方式:在使用括号(包括“()”“[]”和“{}”等)时,括号中的内容可分多行书写,括号中的注释、空白和换行符都会被忽略示例代码如下。if(x<100 #这是续行语句中的注释andx>10):y=x*5-1else:y=02.1.4语句分隔符号Python使用分号作为语句分隔符号,从而将多条语句写在一行示例代码如下。print(100);print(2+3)使用语句分隔符号分隔的多条语句可视为一条复合语句,Python允许将单独的语句或复合语句写在冒号之后示例代码如下。ifx<100andx>10:y=x*5-1else:y=0;print('x>=100或x<=10')2.1.5关键字关键字也称保留字,用于表示程序设计语言的命令或常量,不允许作为标识符使用。Python的关键字如下。False await else import passNone break except in raiseTrue class finally is returnand continue or lambda tryas def from nonlocal whileassert del global not withasync elif if or yield注意,Python区分大小写,关键字必须严格区分大小写。keyword模块中的kwlist变量保存了Python的关键字列表。可在交互环境中输出keyword.kwlist变量的值以查看Python的关键字列表,示例代码如下。>>>importkeyword>>>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']Python3.10增加了软关键字,用于特定上下文。例如,match、case和_等标识符是模式匹配(match…case)语句中的软关键字。2.1.6标识符标识符即名称,Python中的变量、函数、模块、类或其他对象,均通过标识符来引用。在Python3中,标识符的命名规则如下。由字母、下划线“_”和数字组成,首字符不能是数字。字母可以是各种Unicode字符(空格、@、%、$等各种特殊符号除外)。不能使用关键字作为标识符。标识符区分大小写。例如,_abc、速度、r_1都是合法的标识符,而2abc、price$是非法的标识符,Abc和abc是两个不同的标识符。除了命名规则外,Python还有一些标识符使用惯例。首尾各有两个下划线(双下划线)的标识符通常为系统标识符,具有特殊作用。例如,__init__、__doc__都是系统标识符。默认情况下,以一个或两个下划线开头的标识符(如_abc或__abc)不能使用“from…import*”语句从模块导入。以两个下划线开头的标识符(如__abc)是类的私有标识符。任务2-2:输入两个数比较大小【任务目标】使用input()函数输入两个数,比较其大小后,先输出较大数,再输出较小数。程序运行结果如下。请输入第一个数:5请输入第二个数:353【任务实施】演示过程……2.2数据输入方法本节主要内容:input()函数输入数值eval()函数中断输入2.2.1input()函数input()函数用于从键盘输入数据,其基本语法格式如下。变量=input('提示字符串')其中,变量和提示字符串均可省略。函数将用户输入的内容作为字符串返回。用户按【Enter】键结束输入,【Enter】键之前的全部字符均作为输入内容。指定变量时,变量保存输入的字符串示例代码如下。>>>a=input('请输入数据:')请输入数据:'abc'123,456"python">>>a'\'abc\'123,456"python"'2.2.2输入数值如果需要输入整数或小数,则应使用int()或float()函数转换数据类型,示例代码如下。>>>a=input('请输入一个整数:')请输入一个整数:5>>>a #输出a的值,可看到输出的是一个字符串'5'>>>a+1 #因为a中是一个字符串,试图执行加法运算,所以出错Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:Can'tconvert'int'objecttostrimplicitly>>>int(a)+1 #将字符串转换为整数再执行加法运算,执行成功62.2.3eval()函数eval()函数可返回字符串的内容,即相当于去掉字符串的引号示例代码如下。>>>a=eval('123') #等同于a=123>>>a123>>>type(a)<class'int'>>>>x=10>>>a=eval('x+20') #等同于a=x+20>>>a30在输入整数或小数时,可使用eval()函数来执行转换示例代码如下。>>>a=eval(input('请输入一个整数或小数:'))请输入一个整数或小数:12>>>a12>>>type(a)<class'int'>2.2.4中断输入在输入数据时,可按【Ctrl+Z】组合键中断输入,如果输入了其他字符,此时【Ctrl+Z】和输入内容作为字符串返回;如果没有输入任何数据,则会产生EOFError异常示例代码如下。>>>a=input('请输入数据:') #有数据时,^Z作为输入数据,不会出错请输入数据:1231abc^Z>>>a'1231abc\x1a'>>>a=input('请输入数据:')请输入数据:^ZTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>EOFError任务2-3:将诗词输出到文件【任务目标】编写一个程序,将下面的诗词输出到文件。绝句杜甫两个黄鹂鸣翠柳,一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。右图显示了记事本中打开的文件内容。【任务实施】演示过程……2.3数据输出方法本节主要内容:print()函数输出到文件2.3.1print()函数print()函数基本语法格式如下。print([obj1,…][,sep=''][,end='\n'][,file=sys.stdout])1.输出一个空行print()函数的所有参数均可省略。无参数时,print函数输出一个空行,示例代码如下。>>>print()2.输出一个或多个数据print函数可同时输出一个或多个数据示例代码如下。>>>print(123) #输出一个数据123>>>print(123,'abc',45,'book’) #输出多个数据123abc45book在输出多个数据时,默认使用空格作为输出分隔符。3.指定输出分隔符print()函数的默认输出分隔符为空格,可用sep参数指定分隔符号示例代码如下。>>>print(123,'abc',45,'book',sep='#')#指定用符号“#”作为输出分隔符123#abc#45#book4.指定输出结尾符号print()函数默认以回车换行符号作为输出结尾符号,即在输出所有数据后会换行。后续的print()函数在新行中继续输出。可以用end参数指定输出结尾符号示例代码如下。>>>print('price');print(100) #默认输出结尾,两个数据输出在两行price100>>>print('price',end='_');print(100) #指定下划线为输出结尾,两个数据输出在一行price_1002.3.2输出到文件print()函数默认输出到标准输出流(即sys.stdout)。在交互环境中执行命令时,print()函数将数据输出到交互环境。在系统命令提示符窗口中运行Python程序时,程序中的print()函数将数据输出到系统命令提示符窗口.在IDLE中运行Python程序时,程序中的print()函数数据输出到IDLE交互环境。可用file参数指定将数据输出到文件,示例代码如下。>>>file1=open(r'd:\data.txt','w') #打开文件>>>print(123,'abc',45,'book',file=file1) #用file参数指定输出文件>>>file1.close() #关闭文件任务2-4:输入3个数排序【任务目标】编写程序,使用input()函数提示用户输入3个数,比较其大小后,按从小到大的顺序输出,程序运行结果如下。请输入第一个数:9请输入第二个数:3请输入第三个数:5359【任务实施】演示过程……2.4赋值语句本节主要内容:简单赋值序列赋值多目标赋值增强赋值2.4.1简单赋值简单赋值用于为一个变量赋值,示例代码如下。x=1002.4.2序列赋值序列赋值可以一次性为多个变量赋值。在序列赋值语句中,可用逗号分隔多个变量和值,也可用元组、列表表示多个变量和值。Python按先后顺序依次将数据赋值给变量。示例代码如下。>>>x,y=1,2 #直接为多个变量赋值>>>x1>>>y2示例代码如下。>>>(x,y)=10,20 #为元组中的变量赋值>>>x10>>>y20>>>[x,y]=30,'abc’ #为列表中的变量赋值>>>x30>>>y'abc'等号右侧为字符串时,Python会将字符串分解为单个字符,依次赋值给各个变量。此时,变量个数和字符个数必须相等,否则会出错示例代码如下。>>>(x,y)='ab' #用字符串为元组中的变量赋值>>>x'a'>>>y'b'>>>((x,y),z)='ab','cd' #用嵌套的元组为变量赋值>>>x'a'>>>y'b'>>>z'cd'>>>(x,y)='abc' #字符个数与变量个数不一致,出错Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:toomanyvaluestounpack(expected2)序列赋值时,可以在变量名之前使用“*”,不带星号的变量仅匹配一个值,剩余的值作为列表赋值给带星号的变量示例代码如下。>>>x,*y='abcd'>>>x'a'>>>y['b','c','d']>>>*x,y='abcd' #最后第一个字符赋值给y,其他字符作为列表赋值给x>>>x['a','b','c']>>>y'd'#第一个字符赋值给x,最后一个字符赋值给z,其他字符作为列表赋值给y>>>x,*y,z='abcde'>>>x'a'>>>y['b','c','d']>>>z'e'第一个数据赋值给x,其他值作为列表赋值给y>>>x,*y=[1,2,'abc','汉字'] >>>x1>>>y[2,'abc','汉字']2.4.3多目标赋值多目标赋值指用连续的多个等号将同一个数据赋值给多个变量示例代码如下。>>>a=b=c=10 #将10赋值给变量a、b、c>>>a,b,c(10,10,10)等价于:>>>a=10>>>b=a>>>c=b2.4.4增强赋值增强赋值指将运算符与赋值相结合的赋值语句示例代码如下。>>>a=5>>>a+=10 #增强赋值,等价于a=a+10>>>a15Python中的增强赋值语句如表所示。+=-=*=**=//=&=|=^=>>=<<=/=%=任务2-5:使用共享列表存储诗人姓名【任务目标】在列表中预存多个诗人姓名,然后输入列表项序号和姓名,修改列表中列表项序号对应的诗人姓名,并输出修改后的列表。程序运行结果如下。当前列表:['李白','杜甫','苏轼']请输入列表项序号[0,1,2]:1请输入新的姓名:王维修改后的列表:['李白','王维','苏轼']【任务实施】演示过程……2.5变量与对象关系本节主要内容:变量与对象对象回收机制变量的共享引用2.5.1变量与对象因为Python将所有的数据都作为对象来处理,赋值语句会在内存中创建对象和变量,以下面的赋值语句为例。x=5Python在执行该语句时,会按顺序执行3个步骤:首先,创建表示整数5的对象;其次,检查变量x是否存在,若不存在则创建变量x;最后,建立变量x与整数对象5的引用关系。变量x和对象5之间的关系。5x对象引用变量在Python中使用变量时,必须理解下面几点。变量在第一次赋值时被创建,再次出现时可以直接使用。变量没有数据类型的概念。数据类型属于对象,它决定了对象在内存中的存储方式。变量引用对象。在表达式中使用变量时,变量立即被其引用的对象替代。所以变量在使用之前必须为其赋值。示例代码如下。>>>x=5 #第一次赋值,创建变量x,引用对象5>>>print(x+3) #变量x被对象5替代,语句实际为print(5+3)8每个对象都有各自的标识号、数据类型和值。一个对象被创建后,其标识号就绝不会改变。可将标识号理解为对象在内存中的地址。可用“is”运算符比较两个对象的标识号是否相同,id()函数可返回代表标识号的整数,示例代码如下。>>>x=10>>>y=10 #x和y引用同一个对象10>>>xisyTrue#查看x和y的标识号,实际上查看的都是10的标识号,所以返回的整数相同>>>id(10),id(x),id(y) (2349234979344,2349234979344,2349234979344)2.5.2对象回收机制当对象没有被引用时,其占用的内存空间会自动被回收——称为自动垃圾回收。Python为每一个对象创建一个计数器,记录对象的引用次数。当计数器为0时,对象被删除,其占用的内存被回收示例代码如下。>>>x=5 #第一次赋值,创建变量x,引用整数对象5>>>type(x) #实际执行type(5),所以输出整数对象5的数据类型<class'int'>>>>x=1.5 #使变量x引用浮点数对象1.5,对象5被回收>>>type(x) #实际执行type(1.5)<class'float'>>>>x='abc' #使变量x引用字符串对象'abc',对象1.5被回收>>>type(x) #实际执行type('abc')<class'str'>Python自动完成对象的垃圾回收,在编写程序时不需要考虑对象的回收问题。可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版二手房独家授权销售合同3篇
- 2025年度出租车充电桩建设与维护合同3篇
- 二零二五年酒店宴会部经理招聘与服务质量提升合同3篇
- 二零二五版房产中介佣金结算及售后服务合同范本3篇
- 2024年船舶制造与维修合同
- 2025年新型纱窗产品研发与知识产权保护协议2篇
- 2025年散装粮食海运协议6篇
- 专业质量检测服务工程协议样本版
- 二零二五版合同部合同管理流程再造与效率提升合同3篇
- 二零二五年度消防设施安全检测与维护服务协议
- 2024-2025学年人教版数学六年级上册 期末综合试卷(含答案)
- 无创通气基本模式
- 飞行原理(第二版) 课件 第4章 飞机的平衡、稳定性和操纵性
- 暨南大学珠海校区财务办招考财务工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 羊水少治疗护理查房
- 中华人民共和国保守国家秘密法实施条例培训课件
- 管道坡口技术培训
- OQC培训资料教学课件
- 2024年8月CCAA国家注册审核员OHSMS职业健康安全管理体系基础知识考试题目含解析
- 体育赛事组织与实施操作手册
- 2024年浙江省公务员考试结构化面试真题试题试卷答案解析
评论
0/150
提交评论