PythonPython3入门.ppt
Python3入门,2023年7月7日,目录,2,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,print(Hello world!)Hello world!2*101024 j=0 for i in range(1,11,1):.j=j+i.print(j)55,Python的安装,3,下载:版本:windows、linux、源码开发集成开发环境:IDLE(Python 3.4 GUI-32 bit)命令行:Python 3.4(command line-32 bit)手机:qpython范例,Python语言构成,4,语法规则:注释#、缩进、“:”、单引号、双引号等数据类型:int、str、float等(python3里面这些都是类)语句:if、else、elif、while、def、import等函数:print()、range()、help()等对象:os、sys等忘记了语句,不会用?help()函数不用了,要退出?exit()函数,目录,5,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,变量和数据类型,6,数字 number,7,整数:12 0-12987 0X1A2class int十六进制是以 0X 开头,数字范围为 0-9 和A-F浮点数:12.03 1E1-1.54E-21class float精度和范围与 C语言的 double型相同复数:1+3Jclass complex,数字表达式,8,通常的数字表达式运算符:+,-,/,*,*,%,/运算优先级和括号正常工作,逻辑表达式(布尔表达式)boolean,9,True 和 False 为预定义值;实际上是整数1 和 0值 0 作为 False,所有其他值是 True常见的布尔表达式运算符:not,and,or,字符串 string,10,单引号和双引号均可用于字符串生成一样的字符串值字符串中的特殊符号:n newline,t tab,others三引号(单、双均可)用于大块的文本内容,字符串转换,11,数据类型转换需要用到函数:str,int,float函数 eval 将一个字符串解释为 Python 表达式,字符串运算符,12,改变字符串:不行!,13,Python中的字符串不可修改!如果你真的要改变一个字符串:用旧的字符串片段生成一个新的,字符串 方法,14,字符串有一组built-in(内建,内置,内嵌)方法没有方法可以改变原串!有几个方法可以生成新串,字符串格式化,15,当有多个项需要格式化的时候,要用元组(Tuples)作为操作符元组的长度必须匹配格式化项数不能用列表类型 List!,字符串格式化,16,列表 List,17,有序的对象序列;排列异质的;可以包含任意类型的对象的混合,列表 List 操作,18,列表是可变的,可以改变局部列表是动态的,大小可变,列表的方法,第1部分,19,列表有一组内建的方法有些方法会从内部改变列表,列表的方法,第2部分,20,使用内建的 sort 方法:高效排序是内部进行的,不产生新表!,转字符串为列表,21,split 对于简单的分解分析很有用否则要用正则表达式模块 re;,对象、名字和引用,22,所有的值都是对象一个变量是一个引用对象的名字一个对象可能有多个名字引用它这个特性在内部修改对象的时候很重要!你可能不得不做出适当的拷贝来得到你要的效果对不可变对象(数字,字符串),这永远不是问题,字典 Dictionary,23,关键字/值 对的无序序列每个关键字映射到一个值也称为映射“mapping”,哈希表“hash table”或查找表 lookup table,差点忘了:del,24,使用命令del 销毁数据命令!不是函数!实际上移除变量(名字),不是对象,字典方法,第1部分,25,字典方法,第2部分,26,元组 Tuple,27,和表 list 一样,除了不可变一旦生成,就不可改变某些函数会返回元组,目录,28,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,在IDLE中编写脚本,29,现在我们要编写合适的脚本并保存到文件中在IDLE中:FileNew Window直接点击 Save as打开目录 Desktop创建一个文件夹 Python course进入这个文件夹输入文件名 t1.py保存在这个叫 t1.py的窗口中输入下述代码:保存这个文件:Ctrl-S,或者进入菜单 File,Save运行这个脚本:按F5,或者进入菜单 Run,Run Module,if 语句;块结构,30,Python的一个让人又爱又恨的特性就是块结构块结构由缩进确定编辑一个新的文件t2.py在窗口 t1.py 中点击 File,New Window,之后 Save As应用 if 命令:,字典 Dictionary 比 if elif更好,31,特别地,对于那些硬编码的选择(elifs)更紧凑,更高效这个模式非常有用,内嵌类型与它们的布尔解释,32,for 语句,33,对一个块语句的重复执行对一个序列进行迭代遍历(list,tuple,string,iterator),while 语句,34,对一个块语句的重复不断循环执行,直到判断变成false或者出现break,循环中可选的else 区块,35,如果没有遇到break则执行else 区块经常用来取代success/failure 标记对 for 与 while 循环都适用,异常处理:try 与 except,36,程序运行中的错误经常会导致执行失败错误信息能报告出错类型使用 try,except 来捕获并处理异常,如何分段很长的行,37,有时,一行代码需要被切为多行显示缩进规则意味着我们没有自由的形式可用,目录,38,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,函数参数:固定参数、可变参数,39,参数数量固定与顺序相关,可以有任意数量个参数当所需参数数量未知时十分有用参数会保存在一个 元组tuple中按照习惯,命名为 args*是用来区分的标记,函数参数:默认值,40,参数可以有默认值当调用时没有给定参数,会采用默认值如果既没有默认值,调用时也没有给出参数,那么崩溃显式调用参数,改变参数顺序,函数参数:关键字,41,关键字/值 参数参数会被保存进字典dictionary习惯命名成 kwargs*是用来区分的标记首先尝试匹配已有的参数名称,函数参数:显式变量类型检查,42,使用 assert 命令检查布尔表达式是否为真,否则就是异常可以在代码中任一点使用用于健壮性测试可选择性添加错误提示信息,函数参数:局部变量,43,参数为局部变量不可变变量的值通过复制赋值可变变量的值依然可被改变:但是要小心 在def 区块内定义的变量都是局部变量先无视return,没有 return的函数:None值,44,一个函数不一定要有 return 命令如果没有,则与其他编程语言中的 procedure 功能一样实际上函数默认总是会返回一个值:None一个没有值的return完全是可以的:returns NoneNone 是一个特殊的值,意味着 什么都没有在很多环境下很有用尤其是在面向对象的编程的问题中,math 模块:函数与常数,45,模块使用一瞥数学函数在一个单独的模块中,函数是对象,函数名是引用,46,函数只是另一种对象罢了函数名没什么特别的:可以被改变,内嵌函数 map、filter,47,map是一个操作列表的内嵌函数map需要一个函数与一个列表作为参数这个函数限定为只有一个参数输入,一个返回输出这个函数要依次作用到这个列表上的每一个元素转换结果作为一个列表返回,文件操作:读,48,一个文件操作对象由内嵌函数 open创建文件对象有一系列函数 read函数可以从文件中获取数据队列read:读取整个文件(或者说N 字节),返回一个单独的字符串readline:读取一行(然后跳到新的一行)readlines:读取所有的行,返回一个字符串的列表,文件操作:写,49,write 函数只是简单地输出给定的字符串 字符串不一定是ASCII码,二进制串也是可以的,文件操作:用 for 循环读取,50,迭代使用 for循环一行行读取文件推荐用法,文件操作,老式的读取策略,51,目录,52,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,模块 re,part 1,53,正则表达式:正则表达式就是记录文本规则的代码,是高级字符串模式定义一个模式:定义模式的语法与 Perl 或者 grep的很相似把它应用到一个字符串上处理结果,如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。,模块 sys,54,sys.argv命令行执行时使用的参数列表;sys.argv0是这个脚本的名字sys.path用来寻找模块的目录路径的列表sys.platform一个用来表示当前操作系统的字符串,sys.stdout,sys.stdin,sys.stderr预定义的文件处理对象,用于 输入/输出print的东西会传给 sys.stdout也可以设置成给其他文件sys.exit(n)强制退出 Python 执行n 是一个整数错误代码,通常是 0,模块 os,55,os.getcwd():返回当前目录,os.chdir(path):把当前路径切换到 pathos.listdir(path):返回 path下的文件夹目录列表os.mkdir(path):创建一个目录 pathos.rmdir(path):删除目录 pathos.remove(path):删除文件 path,模块 os,56,os.system(command)在子进程中执行shell命令(字符串string)返回一个整数错误码os.path.exists(path):路径是否存在,是目录还是文件os.path.isfile(path):路径是一个文件吗os.path.isdir(path):路径是一个目录吗,os.path.abspath(path):返回给定的相对路径的绝对路径,目录,57,1,Python概述,2,变量和内建数据类型,3,语句,4,函数,5,标准库模块,6,程序调试,程序调式:IDLE,58,在Shell中打开Debugger选项Debug Control中进行查看控制在IDLE编辑器中可以设置断点,程序调式:PDB,59,pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能。,import pdb a=aaapdb.set_trace()b=bbbc=cccfinal=a+b+c print(final),c:usersdengdidesktopt2.py(4)()-b=bbb(Pdb)list 1 import pdb 2 a=aaa 3 pdb.set_trace()4-b=bbb 5 c=ccc 6 final=a+b+c 7 print(final)EOF(Pdb)next c:usersdengdidesktopt2.py(5)()-c=ccc(Pdb)pp aaaa(Pdb),程序调式:PDB,60,(Pdb)helpDocumented commands(type help):=EOF c d h list q rv undisplaya cl debug help ll quit s unt alias clear disable ignore longlist r source until args commands display interact n restart step up b condition down j next return tbreak w break cont enable jump p retval u whatis bt continue exit l pp run unalias where(Pdb)help pppp expression Pretty-print the value of the expression.,61,