收藏 分销(赏)

Python语言教学课件全书电子讲义.pptx

上传人:精**** 文档编号:10089917 上传时间:2025-04-21 格式:PPTX 页数:587 大小:4.83MB 下载积分:20 金币
下载 相关 举报
Python语言教学课件全书电子讲义.pptx_第1页
第1页 / 共587页
Python语言教学课件全书电子讲义.pptx_第2页
第2页 / 共587页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/12/5,#,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,2021/12/5,#,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,2021/12/5,#,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,2021/12/5,#,第1章 Python开发环境搭建与使用,本章学习目标,了解Python语言的应用领域,了解Python语言的特点,熟练安装Python和Anaconda3,熟练安装Python扩展库,了解IDLE、Jupyter Notebook和Spyder这几个开发环境的简单使用,了解标准库对象和扩展库对象的导入和使用方法以及常见问题和解决方法,了解Python代码编写规范,1.1 Python语言特点与应用领域,经过30年的发展,目前Python已经渗透到几乎所有领域,包括但不限于:,计算机安全、网络安全、软件漏洞挖掘、软件逆向工程、软件测试与分析、电子取证、密码学,数据采集、数据分析与处理、机器学习、深度学习、自然语言处理、推荐系统构建,统计分析、科学计算、符号计算、可视化,计算机图形学、图像处理、音乐编程、语音识别、视频采集、视频处理、动画制作、游戏设计与策划,网站开发、套接字编程、网络爬虫、系统运维,树莓派、无人机、移动终端应用开发、电子电路设计,辅助教育、辅助设计、办公自动化,1.1 Python语言特点与应用领域,Python是一门,跨平台,、,开源,、,免费,的,解释型,高级,动态编程,语言,是一种通用编程语言。,除了可以解释执行之外,Python还可以把源代码,伪编译为字节码,来优化程序提高加载速度并对源代码进行一定程度的保密,也支持使用py2exe、pyinstaller、cx_Freeze、py2app或其他类似工具将Python程序及其所有依赖库,打包,为特定平台上的可执行文件,从而可以脱离Python解释器环境和相关依赖库在其他同类平台上独立运行,同时也可以起到更好的源码保护作用。,1.1 Python语言特点与应用领域,与其他编程语言相比,Python语言具有非常明显的特点和优势,例如:,以,快速解决问题,为主要出发点,不涉及过多计算机底层知识,需要记忆的语言细节少,可以快速入门。,支持,命令式编程,、,函数式编程,、,面向对象程序设计,等模式。,语法,简洁清晰,代码,布局,优雅,可读性和可维护性强。,内置数据类型、内置模块和标准库提供了大量功能强大的操作。,拥有大量的几乎支持所有领域应用开发的成熟扩展库和狂热支持者。,1.2 Python安装与IDLE简单使用,1.2 Python安装与IDLE简单使用,1.2 Python安装与IDLE简单使用,1.2 Python安装与IDLE简单使用,1.2 Python安装与IDLE简单使用,IDLE,快捷键,快捷键,功能说明,Alt+P,查看上一条执行过的语句,Alt+N,查看下一条执行过的语句,Ctrl+F6,重启Shell,之前定义的对象和导入的模块全部失效,F1,打开Python帮助文档,Alt+/,自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,则在多个单词中循环选择,Ctrl+,缩进代码块,Ctrl+,取消代码块缩进,Alt+3,注释代码块,Alt+4,取消代码块注释,Tab,代码补全或代码块缩进,1.2 Python安装与IDLE简单使用,使用,IDLE,运行程序,1.2 Python安装与IDLE简单使用,在,IDLE,中执行程序时提供命令行参数,import sys,#接收多个命令行参数,相邻参数之间使用空格分隔,names=sys.argv1:,#循环结构,处理每个参数,for name in names:,print(f你好,name),1.3 Anaconda3安装与Jupyter Notebook、Spyder简单使用,1.3 Anaconda3安装与Jupyter Notebook、Spyder简单使用,1.3 Anaconda3安装与Jupyter Notebook、Spyder简单使用,1.4 在PowerShell或命令提示符环境运行Python程序,#内置函数input()用于接收用户的键盘输入,name=input(输入你的名字:),#字符串前面加字母f表示对其中大括号里的内容进行替换和格式化,print(fname 你好,欢迎加入Python的奇妙世界!),1.4 在PowerShell或命令提示符环境运行Python程序,1.5 安装扩展库,-,1.5.1 基本概念,在Python中,有内置模块、标准库和扩展库之分。内置模块和标准库是Python官方的标准安装包自带的,,内置模块没有对应的文件,,可以认为是封装在Python解释器主程序中的;,标准库有对应的Python程序文件,,这些文件在Python安装路径中的Lib文件夹中。,1.5 安装扩展库,-,1.5.1 基本概念,1.5.2 安装扩展库,pip命令示例,说明,pip freeze,列出已安装模块及其版本号,pip install SomePackage=version,在线安装SomePackage模块,可以指定扩展库版本,如果不指定则默认安装最新版本,使用时把SomePackage替换为实际的扩展名名称,例如jieba、pillow、pypinyin,pip install SomePackage.whl,通过whl文件离线安装扩展库,pip install-upgrade SomePackage,升级SomePackage模块到最新版本,pip uninstall SomePackage,卸载SomePackage模块,1.5.2 安装扩展库,1.5.3 常见问题与解决方法,(1)在线安装失败,1)网络不好导致下载失败,2)需要本地安装有正确版本的VC+编译环境,3)扩展库暂时还不支持自己使用的Python版本。,对于第一种错误,可以多尝试几次、指定国内源或下载whl文件离线安装。如果出现第二种错误,可以在本地安装合适版本的VC+编译器或者下载whl文件离线安装。对于第三种错误,可以尝试找一下有没有第三方编译好的whl文件可以下载然后离线安装。,1.5.3 常见问题与解决方法,pip install psutil-5.6.7-cp38-cp38-win_amd64.whl,1.5.3 常见问题与解决方法,如果由于网速问题导致在线安装速度过慢的话,pip命令支持,指定国内的站点,来提高速度,下面的命令用来从阿里云服务器下载安装扩展库jieba,其他服务器地址可以自行查阅。,pip install jieba-i -trusted-host,1.5.3 常见问题与解决方法,如果,固定使用,阿里云服务器镜像,可以在当前登录用户的AppDataRoaming文件夹中创建文件夹pip,在pip文件夹中创建文件pip.ini,输入下面的内容,以后再执行pip命令安装和升级扩展库时就不用每次都指定服务器地址了。,global,index-url=,如果遇到类似于“,拒绝访问,”的出错提示,可以使用管理员权限启动命令提示符,或者在执行pip命令时在最后增加选项“-user”。,1.5.3 常见问题与解决方法,(2)安装路径带来的问题,如果计算机上安装了多个版本的Python开发环境,,在一个版本下安装的扩展库无法在另一个版本中使用,。强烈建议在命令提示符或PowerShell环境切换至相应版本Python安装目录的scripts文件夹中,然后执行pip命令,如果要离线安装扩展库的话,最好也把.whl文件下载到相应版本的scripts文件夹中。,1.5.3 常见问题与解决方法,(3)扩展库自身bug或版本冲突问题,某些扩展库在升级过程中解决原来问题的同时又引入了新的错误,,导致某些功能在旧版本中工作正常但在新版本中却无法使用。如果遇到类似的情况,可以查一下扩展库的官方网站的最新消息,或者暂时还原较低的版本,如果水平足够的话也可以自己修改一下扩展库的代码再使用。,1.6 标准库、扩展库对象的导入与使用,Python所有,内置对象不需要导入,就可以直接使用,但,内置模块对象和标准库对象必须先导入,才能使用,,扩展库则需要正确安装之后才能导入和使用,其中的对象。,在编写代码时,一般建议先导入内置模块和标准库对象再导入扩展库对象,最后导入自己编写的本地模块。并且,建议在程序中只导入确实需要使用的对象,确定用不到的不要导入,避免导入整个模块,这样可以适当提高代码加载和运行速度,并能减小打包后的可执行文件体积。,1.6.1 import 模块名 as 别名,import sys,import math,import random,import os.path as path,#计算并输出30的阶乘,print(math.factorial(30),#随机选择30个字符0或字符1,允许重复,print(random.choices(01,k=30),#判断字符串C:Windowsnotepad.exe指向的路径是否为已存在的文件,print(path.isfile(rC:Windowsnotepad.exe),#查看Python解释器程序文件路径,print(sys.executable),#查看对象占用的字节数,print(sys.getsizeof(),print(sys.getsizeof(1,2,3,4),print(sys.getsizeof(1,2,3,4),1.6.2 from 模块名/库名 import 对象名/模块名 as 别名,from math import pi as PI,from os.path import getsize,join,from calendar import isleap,#下面一行代码需要安装扩展库pillow,from PIL import Image,r=3,print(PI*r*r),#计算半径为3的圆的面积,#获取文件C:python38python.exe的大小,单位为字节,print(getsize(rC:python38python.exe),#连接多个路径为一个完整的路径,print(join(rC:python38,libsite-packages),print(isleap(2020),#判断2020年是否为闰年,im=Image.open(test.jpg),print(im.getpixel(200,200),#获取并输出指定位置的像素颜色值,1.6.3 from 模块名 import*,from itertools import*,#从字符串01234中任选3个字符的所有组合,不允许重复,#list()用来把函数combinations()的返回值变成列表,print(list(combinations(01234,3),#从字符串01234中任选3个字符的所有组合,允许重复,print(list(combinations_with_replacement(01234,3),#从字符串1234中任选3个字符的所有排列,print(list(permutations(1234,3),#把多个列表首尾相接,print(list(chain(1,2,3,4,5,6,7,8,9),data=1,2,3,4,5,6,values=0,1,1,0,0,1,#把等长列表data和values左对齐,#返回data中与values中的1对应的位置上的元素,print(list(compress(data,values),1.6.3 from 模块名 import*,#返回列表中作为参数传递给函数callable()后得到False的那些元素,print(list(filterfalse(callable,int,3,str,sum,5),#返回12和45的笛卡尔积,print(list(product(12,45),#返回3个字符串12的笛卡尔积,print(list(product(12,repeat=3),#把123和abcdef左对齐,对应位置上的字符组合到一起,短的在后面补字符0,#相当于把123000和abcdef左对齐,对应位置上的字符组合到一起,print(list(zip_longest(123,abcdef,fillvalue=0),1.6.4 高级用法与常见问题,import sys,#查看模块导入时的搜索路径,print(sys.path),C:Python38Libidlelib,C:Python38python38.zip,C:Python38DLLs,C:Python38lib,C:Python38,C:UsersdfgAppDataRoamingPythonPython38site-packages,C:Python38libsite-packages,C:Python38libsite-packageswin32,C:Python38libsite-packageswin32lib,C:Python38libsite-packagesPythonwin,#添加新的搜索路径,sys.path.append(D:test),print(sys.path),C:Python38Libidlelib,C:Python38python38.zip,C:Python38DLLs,C:Python38lib,C:Python38,C:UsersdfgAppDataRoamingPythonPython38site-packages,C:Python38libsite-packages,C:Python38libsite-packageswin32,C:Python38libsite-packageswin32lib,C:Python38libsite-packagesPythonwin,D:test,1.6.4 高级用法与常见问题,1.7 Python代码编写规范,(1)缩进,在函数定义、类定义、选择结构、循环结构、异常处理结构和with语句等结构中,对应的函数体或语句块都必须有相应的缩进。,当某一行代码与上一行代码不在同样的缩进层次上,并且与之前某行代码的缩进层次相同,表示上一个代码块结束。,1.7 Python代码编写规范,def toTxtFile(fn):#函数定义,with open(fn,w)as fp:#相对def缩进4个空格,for i in range(10):#相对with缩进4个空格,if i%3=0 or i%7=0:#相对于for缩进4个空格,fp.write(str(i)+n)#相对于if缩进4个空格,else:#选择结构的else分支,与if对齐,fp.write(ignoredn)#相对于else缩进4个空格,fp.write(finishedn)#for循环结构结束,与for对齐,print(all jobs done)#with块结束,与with对齐,toTxtFile(rD:text.txt)#函数定义结束,调用函数,1.7 Python代码编写规范,(2)空格与空行,1.7 Python代码编写规范,(3)标识符命名,在为标识符起名字时,至少应该做到“,见名知义,”,优先考虑使用英文单词或单词的组合作为标识符名字。,如果使用单词组合的话有两种常用形式,一种是,使用单个下画线连接单词,(例如str_name),一种是标识符名字,首字母小写而后面几个单词的首字母大写,(例如strName),变量名和函数名可以使用任意一种形式,类名一般使用第二种形式并且首字母大写。另外,变量名不适合太长,有的程序员总担心别人看不明白自己的变量名表示什么,干脆使用一个完整句子十几个单词的组合作为变量名,这样做是不合适的。,1.7 Python代码编写规范,例如,使用age表示年龄、number表示数量、radius表示圆或球的半径、price表示价格、area表示面积、volume表示体积、row表示行、column表示列、length表示长度、width表示宽度、line表示直线、curve表示曲线,getArea或get_area表示用来计算面积的函数名,setRadius或set_radius表示修改半径的函数。,除非是用来临时演示或测试个别知识点的代码片段,否则不建议使用x、y、z或者a1、a2、a3这样的变量名。,1.7 Python代码编写规范,除“见名知义”这个基本要求之外,在Python中定义标识符时,还应该遵守下面的规范。,必须,以英文字母、汉字或下划线开头。,中间位置,可以,包含汉字、英文字母、数字和下画线,,不能,有空格或任何标点符号。,不能,使用关键字,例如yield、lambda、def、else、for、break、if、while、try、return都是不能用作标识符名称的。,对英文字母的大小写,敏感,,例如student和Student是不同的标识符名称。,不建议,使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名或者自定义函数名、类名,例如type、max、min、len、list这样的变量名都是不建议作为变量名的,也不建议使用math、random、datetime、re或其他内置模块和标准库的名字作为变量名或者自定义函数名、类名。,1.7 Python代码编写规范,(4)续行,expression1=1+2+3#使用反斜线作为续行符,+4+5,expression2=(1+2+3#把多行表达式放在圆括号中表示是一条语句,+4+5),1.7 Python代码编写规范,(5)注释,在Python中有两种常用的注释形式:井号“#”和三引号。,井号,“#”用于单行注释,表示本行中“#”符号之后的内容不作为代码运行,一般建议在表示注释的井号“#”后面增加一个空格再写注释内容;一对,三引号,(包括三单引号和三双引号)常用于大段说明性文本的注释,也可以用于表示包含多行的字符串。,1.7 Python代码编写规范,(6)圆括号,圆括号除了用来,表示多行代码为一条语句,,还常用来,修改表达式计算顺序,或者,增加代码可读性避免歧义,。建议在复杂表达式中适当的位置增加括号,明确说明运算顺序,尽最大可能减少人类阅读时可能的困扰,除非运算符优先级与大多数人所具备的常识高度一致。,1.7 Python代码编写规范,(7)定界符、分隔符、运算符,在编写Python程序时,所有定界符和分隔符都应使用,英文半角字符,,例如元素之间的逗号、表示列表的方括号、表示元组的圆括号、表示字典和集合的大括号、表示字符串和字节串的引号、字典的“键”和“值”之间的冒号、定义函数和类以及类中方法时的冒号、所有运算符,这些都应该使用英文半角输入法,不能是全角字符。这些属于硬性规定,如果违反会导致语法错误。,1.7 Python代码编写规范,(8)函数大小,一般建议一个函数的代码行数不超过一个屏幕的高度,如果超过太多可以考虑重新设计程序的框架,拆分成几个小的函数。和续行符的使用一样,函数大小也不是硬性规定,但如果这样做的话可以提高代码阅读体验。,第2章 内置类型、内置函数与运算符,本章学习目标,熟练掌握常见内置类型的基本用法,熟练掌握常用运算符的功能和用法,熟练掌握常用内置函数的功能和用法,了解自定义函数的基本语法,了解lambda表达式的语法和功能,了解函数式编程的形式和特点,了解部分标准库中函数的用法,2.1 常用内置类型,数据类型是特定类型的,值,及其支持的,操作,组成的整体,每种类型的对象的表现形式、取值范围以及支持的操作都不一样,各有不同的特点、优劣和适用场合。,例如,整型对象支持加、减、乘、除、幂运算、相反数和计算余数;列表、元组和字符串分别使用方括号、圆括号和引号作为定界符,都支持使用加号连接、支持与整数相乘、支持使用序号作为下标访问特定位置上的元素、支持使用切片访问其中的部分元素;列表支持追加元素、插入元素、删除元素、查找元素、修改元素以及排序等操作,元组不支持元素的增加、修改、删除等操作;字典以大括号作为定界符,支持通过“键”作为下标获取相应的“值”;集合也以大括号作为定界符,但只能包含可哈希对象、其中的元素是无序的、增加元素时会自动忽略重复元素、不支持使用下标访问指定位置上的元素。,2.1 常用内置类型,在Python语言中所有的一切都可以称作对象,常见的对象类型有整数、实数、复数、字符串、列表、元组、字典、集合和zip对象、map对象、enumerate对象、range对象、filter对象、生成器对象等内置对象,以及大量标准库对象和扩展库对象,函数和类也可以称作对象。,内置对象在启动Python之后就,可以直接使用,,不需要导入任何标准库,也不需要安装和导入任何扩展库。,可以使用print(dir(_builtins_)查看所有内置对象清单。,2.1 常用内置类型,对象类型,类型名称,示例,简要说明,数字,int,float,complex,666,0o777,0b1111,0 x4ed,82.718281828459045,1.2e-3,3+4j,5J,数字大小没有限制,1.2e-3表示1.2乘以10的-3次方,复数中j或J表示虚部,字符串,str,Readability counts.,Whats your name?,Tom sai,lets go.,rC:Windowsnotepad.exe,fMy name is name,rfdirectoryfn,使用单引号、双引号、三引号作为定界符,不同定界符之间可以互相嵌套;前面加字母r或R表示原始字符串,任何字符都不进行转义;前面加字母f或F表示对字符串中的变量名占位符进行替换,对字符串进行格式化;可以在引号前面同时加字母r和f;一对空的单引号、双引号或三引号表示空字符串,字节串,bytes,bxe8x91xa3xe4xbbx98xe5x9bxbd,bPythonxb6xadxb8xb6xb9xfa,以字母b引导,可以使用单引号、双引号、三引号作为定界符,同一个字符串使用不同编码格式编码得到的字节串可能会不一样,2.1 常用内置类型,列表,list,red,green,blue,a,3,(1,2),c,2,65:A,所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型,一对空的方括号表示空列表,元组,tuple,(0,0,255),(0,),(),所有元素放在一对圆括号中,元素之间使用逗号分隔,元组中只有一个元素时后面的逗号不能省略,一对空的圆括号表示空元组,字典,dict,red:(1,0,0),green:(0,1,0),blue:(0,0,1),所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值”,其中“键”不允许重复并且必须为不可变类型(或者说必须是可哈希类型,例如整数、实数、字符串、元组),“值”可以是任意类型的数据,,,一对空的大括号表示空字典,集合,set,red,green,blue,set(),所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复且必须为不可变类型。set()表示空集合,不能使用一对空的大括号表示空集合,2.1 常用内置类型,布尔型,bool,True,False,逻辑值,首字母必须大写,空类型,NoneType,None,空值,首字母必须大写,异常,NameError,ValueError,TypeError,KeyError.,Python内置异常类,文件,fp=open(data.txt,w,encoding=utf8),Python内置函数open()使用指定的模式打开文件,返回文件对象,迭代器,生成器对象、zip对象、enumerate对象、map对象、filter对象、reversed对象等,具有惰性求值的特点,空间占用小,适合大数据处理;其中每个元素只能使用一次,2.1 常用内置类型,data=3+5#创建整型变量,type(data)#查看变量类型,data=3.14#创建实数变量,type(data),data=43,67,type(data),data=Python程序设计入门与实践教程,type(data),del data,data#变量已被删除,再访问会出错,Traceback(most recent call last):,File,line 1,in,data,NameError:name data is not defined,2.1.1 整数、实数、复数,Python内置的数字类型有整数、实数和复数。其中,整数类型除了常见的十进制整数,还有:,二进制:,以0b开头,,每一位只能是0或1,例如0b10011100。,八进制:,以0o开头,,每一位只能是0、1、2、3、4、5、6、7这八个数字之一,例如0o777。,十六进制:,以0 x开头,,每一位只能是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f之一,其中a表示10,b表示11,以此类推,例如0 xa8b9,其中a-f之间的英文字母大小写都可以。,2.1.1 整数、实数、复数,Python支持,任意大,的数字。,由于精度的问题,,实数的算术运算可能会有一定的误差,,应尽量避免在实数之间直接进行相等性测试,而是应该使用标准库math中的函数isclose()测试两个实数是否足够接近。,最后,Python内置支持复数类型及其运算。,2.1.1 整数、实数、复数,import math,print(math.factorial(72)#计算72的阶乘,61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000,print(0.4+0.3)#计算两个实数的和,0.7,print(0.4-0.3)#实数运算可能会有误差,0.10000000000000003,print(0.4-0.3=0.1)#尽量不要直接比较实数是否相等,False,print(math.isclose(0.4-0.3,0.1),#测试两个实数是否足够接近,True,print(8*(1/3)#计算8的立方根,2.0,print(3*0.5)#计算3的平方根,1.7320508075688772,2.1.1 整数、实数、复数,c=3+4j,print(c*2)#计算复数的平方,(-7+24j),print(c*c.conjugate()#计算一个复数与其共轭复数的乘积,(25+0j),print(abs(c)#计算复数的模,5.0,print(3+4j.imag)#计算整数3与复数4j的虚部的和,7.0,print(3+4j).imag)#输出复数3+4j的虚部,4.0,print(b(600,237)#计算600选237的组合数,Python 3.8支持,224777820643381649011788256202430267953753842177924595991743594364725932773630476348450392337208230784729074501955657321431680008930322839581888495396760556194679474142688000,2.1.1 整数、实数、复数,print(math.perm(72,20)#计算72选20的排列数,Python 3.8支持,759184772617383139127116820643840000,print(math.gcd(36,48)#计算36和48的最大公约数,12,math.gcd(36,24,48,18)#计算多个整数的最大公约数,Python 3.9支持,6,math.lcm(3,6,9)#计算多个整数的最小公倍数,Python 3.9支持,18,print(math.log(100)#计算100的自然对数,4.605170185988092,print(math.log(100,10)#计算100以10为底的对数,2.0,print(math.log10(100)#计算100以10为底的对数,2.0,print(math.log2(100)#计算100以2为底的对数,6.643856189774724,2.1.1 整数、实数、复数,print(math.log1p(99)#计算99+1的自然对数,4.605170185988092,print(math.nextafter(3.458,50),#3.458向50方向前进时的下一个实数,#Python 3.9开始支持,3.4580000000000006,print(math.nextafter(3.458,-50),#3.458向-50方向前进时的下一个实数,3.4579999999999997,print(math.prod(1,2,3)#计算可迭代对象中数字的连乘,6,2.1.1 整数、实数、复数,#标准库函数random.randint(a,b)用于返回介于区间a,b的一个随机数,from random import randint,#字符串前面加字母f表示格式化,会计算字符串中一对大括号内表达式的值,#大括号中冒号后面表示格式,x表示十六进制数,#6表示最终结果为6位,0表示不足6位时在前面补0,#f字符串的用法详见6.1.3节,#可以使用下面语句的方法生成随机颜色值,#其中16777215表示0 xffffff的十进制数,print(f#randint(0,16777215):06x),#25b195,2.1.1 整数、实数、复数,#为了提高大数字的可读性,可以在整数中间位置插入一个下画线作为分隔符,#一般是使用单个下画线作为千分位分隔符,也可以在其他位置,但不能在首尾,#这个用法适用于Python 3.6以及更新的版本,print(12_345_678),12345678,#不允许在数字尾部使用下画线,print(12_345_678_),SyntaxError:invalid decimal literal,#在前面加下画线会被认为是变量名,print(_12_345_678),Traceback(most recent call last):,File,line 1,in,print(_12_345_678),NameError:name _12_345_678 is not defined,2.1.2 列表、元组、字典、集合,列表、元组、字典、集合是Python内置的容器对象,其中可以包含多个元素。这几种类型也是Python中常见的可迭代对象。,所谓,可迭代对象,(iterable),,是指,可以使用for循环从前向后逐个访问其中元素的容器类对象,这样的对象也可以转换为列表、元组、集合对象。,所谓,迭代器对象,(iterator),是指除了支持for循环遍历元素之外还可以使用内置函数next()从前向后逐个访问其中元素的对象,例如map对象、zip对象、生成器对象都属于迭代器对象。,迭代器对象属于可迭代对象的真子集,,迭代器对象一定是可迭代对象,但可迭代对象不一定是迭代器对象。,2.1.2 列表、元组、字典、集合,#创建列表对象,x_list=1,2,3,#星号表示序列解包,取出列表中的所有元素,sep表示指定冒号作为分隔符,#类似用法适用于任意可迭代对象,见4.5节,print(*x_list,sep=:),#创建元组对象,x_tuple=(1,2,3),#创建字典对象,元素形式为“键:值”,x_dict=a:97,b:98,c:99,#创建集合对象,x_set=1,2,3,#使用下标访问列表中指定位置的元素,元素下标从0开始,print(x_list1),2.1.2 列表、元组、字典、集合,#元组也支持使用序号作为下标,1表示第二个元素的下标,print(x_tuple1),#访问字典中特定“键”对应的“值”,字典对象的下标是“键”,print(x_dicta),#查看列表长度,也就是其中元素的个数,print(len(x_list),#查看元素2在元组中首次出现的位置,print(x_tuple.index(2),#使用for循环遍历字典中的“键:值”元素,#查看字典中哪些“键”对应的“值”为98,#for循环结构的详细内容见3.3.1节,单分支选择结构见3.2.1节,for key,value in x_dict.items():,if value=98:,print(key),#查看集合中元素的最大值,print(max(x_set),2.1.3 字符串,字符串使用单引号、双引号、三单引号或三双引号作为定界符,其中三引号里的字符串可以换行,并且不同的定界符之间可以互相嵌套。,2.1.3 字符串,如果字符串中含有反斜线“”,反斜线和后面紧邻的字符可能(注意,不是一定)会组合成,转义字符,,这样的组合就会变成其他的含义而不再表示原来的字面意思。,例如,n表示换行符,r表示回车键,b表示退格键,f表示换页符,t表示水平制表符,ooo表示最多3位八进制数对应ASCII码的字符(例如64表示字符4),xhh表示2位十六进制数对应ASCII码的字符(例如x41表示字符A),uhhhh表示4位十六进制数对应Unicode编码的字符(例如u8463表示字符董、u4ed8表示字符付、u56fd表示字符国),UXXXXXXXX表示8位十六进制数对应Unicode编码的字符(有效编码范围为U00010000至U0001FFFD之间)。,2.1.3 字符串,在使用字符串表示文件路径时,如果其中作为分隔符的反斜线和后面紧邻的字符恰好组成转义字符,字符串就没法正确表示路径了。,如果不想反斜线和后面紧邻的字符组合成为转义字符,可以在字符串前面直接加上字母r或R使用,原始字符串,。在字符串前面加上英文字母r或R表示原始字符串,其中的每个字符都表示字面含义,不会进行转义。,不管是普通字符串还是原始字符串,都,不能以单个反斜线结束,,如果最后一个字符是反斜线的话需要再多写一个反斜线。,在字符串前面加字母f或F表示对字符串进行格式化,把其中的变量名占位符替换为具体的值,称作,f-,字符串,。,原始字符串和,f-,字符串可以同时使用,,也就是在字符串前面可以同时加字母f和r(不区分大小写)。,2.1.3 字符串,Python 3.x代码默认使用UTF-8编码格式,全面支持中文。,在使用内置函数len()统计字符串长度时,中文和英文字母都作为一个字符对待。在使用for循环或类似技术遍历字符串时,每次遍历其中的一个字符,中文字符和英文字符也一样对待。,在Python 3.x中可以使用汉字做变量名,再也不用因为想不出使用哪个英文单词做变量名而发愁了。,2.1.3 字符串,#使用一对三双引号定义包含多行的字符串,模拟一个网页的HTML代码,text=,标题,第一段文本,第一个超链接,第二段文本,第二个超链接,2.1.3 字符串,print(len(text)#查看字符串总长度,226,print(text.count()#查看子串的出现次数,2,print(text.count(a)#查看子串 print(t
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服