Python3入门课件

上传人:壹****1 文档编号:568586625 上传时间:2024-07-25 格式:PPT 页数:61 大小:1.34MB
返回 下载 相关 举报
Python3入门课件_第1页
第1页 / 共61页
Python3入门课件_第2页
第2页 / 共61页
Python3入门课件_第3页
第3页 / 共61页
Python3入门课件_第4页
第4页 / 共61页
Python3入门课件_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《Python3入门课件》由会员分享,可在线阅读,更多相关《Python3入门课件(61页珍藏版)》请在金锄头文库上搜索。

1、Python3入门入门2024/7/252024/7/25目录目录目录目录1Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试2PythonPython3入门2 print(Hello world!)Hello world! 2*101024 j=0 for i in range(1,11,1):. j = j+i. print(j)55PythonPython的安装的安装的安装的安装n下载:下载:n版本:版本:windows、linux、源码、源码n开发开发l集成开发环境:IDLE(Python3.4GUI-32bit)l命令行:Python3.4(commandline

2、-32bit)l手机:qpythonn范例范例3PythonPython语言构成语言构成语言构成语言构成n语法规则:语法规则:注释注释#、缩进、缩进、“:”、单引号、双引号等、单引号、双引号等n数据类型:数据类型:int、str、float等(等(python3里面这些都是类)里面这些都是类)n语句:语句:if、else、elif、while、def、import等等n函数:函数:print()、range()、help()等等n对象:对象:os、sys等等n忘记了语句,不会用?忘记了语句,不会用?help()函数函数n不用了,要退出?不用了,要退出?exit()函数函数4目录目录目录目录1P

3、ython概述2变量和内建数据类型3语句4函数5标准库模块6程序调试5PythonPython3入门2变量和数据类型变量和数据类型变量和数据类型变量和数据类型a=Helloworld!#赋值语句print(a)Helloworld!type(a)#表达式:在交互模式下输出值n=12print(n)12type(n)n=12.0type(n)变量在它们被赋值的时候创建无需声明变量名是大小写敏感的:val和Val不一样!变量的类型由Python决定变量可以在任何时候重新赋值为任何其他类型任何其他值n=apaprint(n)apatype(n)6PythonPython3入门2数字数字数字数字 nu

4、mbernumber整数:120-129870X1A2classint十六进制是以0X开头,数字范围为0-9和A-F浮点数:12.031E1-1.54E-21classfloat精度和范围与C语言的double型相同复数:1+3Jclasscomplex7PythonPython3入门2数字表达式数字表达式数字表达式数字表达式通常的数字表达式运算符:+,-,/,*,*,%,/运算优先级和括号正常工作12+51712+5*222(12+5)*234a=12+5print(a)17b=12.4+a#aisconvertedtofloatautomaticallyb29.4print(b)29.44

5、+5.59.51+3.0*210.01+2j+3-4j(4-2j)8PythonPython3入门2逻辑表达式(布尔表达式)逻辑表达式(布尔表达式)逻辑表达式(布尔表达式)逻辑表达式(布尔表达式)booleanbooleanTrue和False为预定义值;实际上是整数1和0值0作为False,所有其他值是True常见的布尔表达式运算符:not,and,orTrueorFalseTruenot(TrueandFalse)orTrue)FalseTrue*12120and10比较运算符产生布尔值比较运算符:,=,=,!=121213False1212!=13True9PythonPython3入门

6、2字符串字符串字符串字符串 stringstring单引号和双引号均可用于字符串生成一样的字符串值字符串中的特殊符号:nnewline,ttab,others三引号(单、双均可)用于大块的文本内容a=Helloworld!b=Helloworld!a=bTruea=Oneline.nAnotherline.print(a)Oneline.Anotherline.b=Oneline,anotherline.print(b)Oneline,anotherline.a=Perslectureprint(a)Perslecture10PythonPython3入门2字符串转换字符串转换字符串转换字符串

7、转换数据类型转换需要用到函数:str,int,float函数eval将一个字符串解释为Python表达式 a = 58 type(a) b=int(a) b58 type(b) c = int(blah) # 如果不合法的表达式出现会怎样?Traceback (most recent call last): File , line 1, in -toplevel- c = int(blah)ValueError: invalid literal for int(): blah f = float(1.2e-3) f # uses repr0.0012 print(f) # uses str0.

8、0012 eval(23-12)1111PythonPython3入门2字符串运算符字符串运算符字符串运算符字符串运算符 a = Part 1 b = and part 2 a + + b # 合并,添加字符串Part 1 and part 2 s = a * 2 # 重复并合并字符串 print (s)Part 1Part 1 s0 # 下标: 单个字符,偏移量为0P s0:4 # 片段: 部分字符串, 从 0 到 4 的正左方Part s5: # 边界留出: 一直到字符串的一端1Part 1 s6:-1 # 负数代表指标计数从右边开始, 结束点在 -1 的正左方Part len(s) #

9、函数 len 获得字符串的长度12 p in s # 成员属性测试False P in sTrue Part in s # 子串测试True12PythonPython3入门2改变字符串:不行改变字符串:不行改变字符串:不行改变字符串:不行! !Python中的字符串不可修改!如果你真的要改变一个字符串:用旧的字符串片段生成一个新的 s0 = BTraceback (most recent call last): File , line 1, in -toplevel- s0 = BTypeError: object doesnt support item assignment s = B +

10、 s1: sBart 1Part 1重新生成字符串可能要用到大量的计算机资源如果你要生成许多新串,尝试字符串格式化列表(List)处理能让字符串处理更为有效13PythonPython3入门2字符串字符串字符串字符串 方法方法方法方法n字符串有一组built-in(内建,内置,内嵌)方法n没有方法可以改变原串!n有几个方法可以生成新串 s = a string, with stuff s.count(st) # 有多少子串?2 s.find(stu) # 如果可以,给出子串的位置15 three = 3 three.isdigit() # 是纯数字串吗?True supper = s.uppe

11、r() # 转为大写 supperA STRING, WITH STUFF s.rjust(30) # 通过加空格来右对齐 a string, with stuff “newlinesnnn”.strip() # 一个实际的串也可以调用方法!newlines s.replace(stuff, characters) # 替换子串 (全部出现过的子串)a string, with characters s.replace(s, X, 1) # 只替换一次a Xtring, with stuff14PythonPython3入门2字符串格式化字符串格式化字符串格式化字符串格式化当有多个项需要格式化

12、的时候,要用元组(Tuples)作为操作符元组的长度必须匹配格式化项数不能用列表类型List! c = Python n = 200 This is a %s course with %i students. % (c, n)This is a Python course with 200 students. w = Number %i won! % 12 #字符串格式化操作符 % wNumber 12 won!字符串格式化操作符%通常是生成新串的最佳方式类似于C语言的格式化:需要一些技巧,但功能强大多个字符串格式化代码%s:string(usesfunctionstr)%r:string(u

13、sesfunctionrepr)%f,%e,%g:float15PythonPython3入门2字符串格式化字符串格式化字符串格式化字符串格式化格式含义d带符号的十进制整数.i带符号的十进制整数.o带符号的八进制值.u过时的类型,等于d.x带符号的十六进制(小写).X带符号的十六进制(大写).e浮点数指数格式(小写).E浮点数指数格式(大写).f浮点数十进制格式.F浮点数十进制格式.g浮点数格式.如果指数小于-4就使用小写指数格式,否则使用十进制格式.G浮点数格式.如果指数小于-4就使用大写指数格式,否则使用十进制格式.c单个字符(接受整数获这个单个正常字符).r字符串(使用函数repr()转

14、为任何python对象).s字符串(使用函数str()转为任何python对象).%转为%自己.16PythonPython3入门2列表列表列表列表 ListListn有序的对象序列;排列n异质的;可以包含任意类型的对象的混合 r = 1, 2.0, 3, 5 # 列表实例,不同的值 r1, 2.0, 3, 5 type(r) r1 # 通过下标来访问; 偏移量为 0 2.0 r-1 # 负的下标代表从尾部开始计数5 r1:3 # 列表的片段; 给出新的列表2.0, 3 w = r + 10, 19 # 合并列表; 给出另外的一个列表 w1, 2.0, 3, 5, 10, 19 r # 原列表

15、不变; w 和 r 不同1, 2.0, 3, 5 t = 0.0 * 10 # 用重复生成一个初始向量 t0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.017PythonPython3入门2列表列表列表列表 ListList操作操作操作操作n列表是可变的,可以改变局部n列表是动态的,大小可变 r = 1, 2.0, 3, 5 r3 = word # 通过下标访问改变一个元素(项) r1, 2.0, 3, word r0 = 9, 8 # 表可以嵌套 r9, 8, 2.0, 3, word r0:3 = 1, 2, 5, 6 # 改变列表的一个片段

16、,可以改变列表的长度 r1, 2, 5, 6, word r1:3 = # 通过设置列表的片段为空集来移除元素 r1, 6, word len(r) # 列表的长度; 项的个数3 6 in r # 成员属性测试True r.index(6) # 搜索并给出位置,如果没有的话 118PythonPython3入门2列表的方法列表的方法列表的方法列表的方法, ,第第第第1 1部分部分部分部分列表有一组内建的方法有些方法会从内部改变列表 r = 1, 2.0, 3, 5 r.append(thing) # 在列表尾增加一个项 r1, 2.0, 3, 5, thing r.append(another

17、, list) # 列表被看作一个单一项 r1, 2.0, 3, 5, thing, another, list r = 1, 2.0, 3, 5 r.extend(item, another) # 列表的项逐次添加 r1, 2.0, 3, 5, item, another k = r.pop() # 移除最后一项 kanother r1, 2.0, 3, 5, item方法append和pop可用于实现栈19PythonPython3入门2列表的方法列表的方法列表的方法列表的方法, ,第第第第2 2部分部分部分部分使用内建的sort方法:高效排序是内部进行的,不产生新表! r = 2, 5,

18、 -1, 0, 20 r.sort() r-1, 0, 2, 5, 20 w = apa, 1, 2, 1234 w.sort() # 字符串: 使用ASCII 顺序 w1, 1234, 2, apa w.reverse() # 反转字符串! wapa, 2, 1234, 1 v = w: # 首先生成新表 v.reverse() # 反转这份拷贝 v # 使用 sort1, 1234, 2, apa wapa, 2, 1234, 120PythonPython3入门2转字符串为列表转字符串为列表转字符串为列表转字符串为列表nsplit对于简单的分解分析很有用n否则要用正则表达式模块re; s

19、 = biovitrum # 生成字符串 w = list(s) # 转为字符的列表 wb, i, o, v, i, t, r, u, m w.reverse() wm, u, r, t, i, v, o, i, b r = .join(w) # 使用空串的join方法 rmurtivoib d = -.join(w) # 使用字符-的join方法 dm-u-r-t-i-v-o-i-b s = a few words w = s.split() # 基于白空格切分 (空格, 新行) wa, few, words | .join(w) # 对其他串用方法 joina | few | words2

20、1PythonPython3入门2对象、名字和引用对象、名字和引用对象、名字和引用对象、名字和引用n所有的值都是对象n一个变量是一个引用对象的名字n一个对象可能有多个名字引用它n这个特性在内部修改对象的时候很重要!n你可能不得不做出适当的拷贝来得到你要的效果n对不可变对象(数字,字符串),这永远不是问题a a = 1, 3, 2 b = a c = b0:2 d = b:1, 3, 2bcd1, 31, 3, 2 b.sort() # a 被改变! a1, 2, 322PythonPython3入门2字典字典字典字典 DictionaryDictionary关键字/值对的无序序列每个关键字映射

21、到一个值也称为映射“mapping”,哈希表“hashtable”或查找表lookuptable h = key: 12, nyckel: word hkey # 由关键字访问12 h.has_key(nyckel) # (仅用于2.x版本)True hPer = Kraulis # 增加一个关键字/值 hnyckel: word, Per: Kraulis, key: 12 # 输出顺序是随机的 hPer = Johansson # 替换值 hnyckel: word, Per: Johansson, key: 12关键字通常是一个整数或一个字符串必须是不可变对象可以是任何可hash的对象任

22、何关键字在一个字典中只能出现一次!值可以是任何对象可以出现多次23PythonPython3入门2差点忘了差点忘了差点忘了差点忘了:del:del使用命令del销毁数据命令!不是函数!实际上移除变量(名字),不是对象 a = thing # 定义一个变量 athing del a # 把这个变量忘掉 aTraceback (most recent call last): File , line 1, in -toplevel- aNameError: name a is not defined h = key: 12, nyckel: word del hkey # 移除关键字和它的值 hny

23、ckel: word r = 1, 3, 2 del r1 # 另一个删除表项的方式 r1, 224PythonPython3入门2字典方法字典方法字典方法字典方法, ,第第第第1 1部分部分部分部分 h = key: 12, nyckel: word Per in h # 测试是否一个关键字在字典中False hPerTraceback (most recent call last): File , line 1, in -toplevel- hPerKeyError: Per len(h) # 字典中的关键字的数量2 h.keys() # 所有的关键字在无序的表中nyckel, key h

24、.values() # 所有的值在无序的表中word, 12 h.get(Per, unknown) # 返回值, 或者返回缺省值unknown h.get(key, unknown)1225PythonPython3入门2字典方法字典方法字典方法字典方法, ,第第第第2 2部分部分部分部分 hPer = Johansson hnyckel: word, Per: Johansson h.update(g) # 根据g添加或者更新所有的关键字/值 hnyckel: word, key: 12, Per: Johansson g = h.copy() # 字典的一个单独拷贝 del hkey h

25、nyckel: word gnyckel: word, key: 1226PythonPython3入门2元组元组元组元组 TupleTuplen和表list一样,除了不可变n一旦生成,就不可改变n某些函数会返回元组 t = (1, 3, 2) t1 # 由下标访问,偏移量03 (a, b, c) = t # 元组赋值 a1 b3 a, b, c # 一个实际上的元组表达式!(1, 3, 2) a, b = b, a # 交换值的技巧 a, b(3, 1) r = list(t) # 转换元组为表 r1, 3, 2 tuple(r) # 转为表为元组(1, 3, 2)27PythonPytho

26、n3入门2目录目录目录目录1Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试28PythonPython3入门2在在在在IDLEIDLE中编写脚本中编写脚本中编写脚本中编写脚本n现在我们要编写合适的脚本并保存到文件中n在IDLE中:lFilelNewWindowl直接点击Saveas打开目录Desktop创建一个文件夹Pythoncourse进入这个文件夹输入文件名t1.py保存n在这个叫t1.py的窗口中l输入下述代码:l保存这个文件:Ctrl-S,或者进入菜单File,Savel运行这个脚本:按F5,或者进入菜单Run,RunModule # 这是文档字符串print

27、 (Hello world!“)29PythonPython3入门2ifif语句语句语句语句; ;块结构块结构块结构块结构Python的一个让人又爱又恨的特性就是块结构块结构由缩进确定编辑一个新的文件t2.py在窗口t1.py中点击File,NewWindow,之后SaveAs应用if命令:注意IDLE编辑器会自动帮助添加缩进运行脚本(F5)person = Lukeif person = Per: status = Pythonistelif person = Luke: status = Jedi knightelse: status = unknownprint (person, sta

28、tus)30PythonPython3入门2字典字典字典字典 DictionaryDictionary比比比比 ifelififelif更好更好更好更好n特别地,对于那些硬编码的选择(elifs)n更紧凑,更高效n这个模式非常有用status_map = Luke: Jedi Knight, Per: Pythonistperson = Lukeprint (person, status_map.get(person, unknown)31PythonPython3入门2内嵌类型与它们的布尔解释内嵌类型与它们的布尔解释内嵌类型与它们的布尔解释内嵌类型与它们的布尔解释True-1True124T

29、rue!FalseFalselistTruekey:valFalsedictTrue!FalseFalsestrFalse0.0floatFalse0int所有内嵌类型可以直接在if命令中使用数字0对应False其他数都对应True空对象(str,list,dict)对应False其它有值的对象对应True使用函数bool来获取显示的值32PythonPython3入门2forfor语句语句语句语句n对一个块语句的重复执行n对一个序列进行迭代遍历(list,tuple,string,iterator)s = 0for i in 0, 1, 2, 3, 4, 5, 6, 7, 8: # 遍历列表

30、中的值, 赋给i s = s + i if s 10: break # 结束 for 循环print (i=%i, s=%i % (i, s)r = for c in this is a string with blanks: # 一个字符一个字符地遍历字符串 if c = : continue # 跳过后面的代码块,继续循环 r.append(c)print (.join(r)33PythonPython3入门2whilewhile语句语句语句语句n对一个块语句的重复n不断循环执行,直到判断变成false或者出现breakr = n = 0last = 20while n = last: #

31、 任何具有布尔值的表达式 r.append(str(n) n += 3print (, .join(r)34PythonPython3入门2循环中可选的循环中可选的循环中可选的循环中可选的elseelse区块区块区块区块如果没有遇到break则执行else区块经常用来取代success/failure标记对for与while循环都适用r = 1, 3, 10, 98, -2, 48for i in r: if i from math import * r = 0, 1, 2, 3, 4, 5, 6 list(map(cos, r)1.0, 0.543977, -0.41614683654714

32、241, -0.98999249660044542, -0.65364362086361194, 0.28366218546322625, 0.966597 r = 0, 1, 2, 3, 4, 5, 6 def large(x): return x3 print(list(filter(large, r)4, 5, 6filter也是一个操作列表的内嵌函数filter需要一个函数与一个列表它用这个函数来决定哪个项应该被放入过滤结果队列中遍历列表中的每一个值,输入到这个函数中如果这个函数返回True,那么值就放到过滤结果队列中如果这个函数返回False,那么这个值就会被跳过47PythonPy

33、thon3入门2文件操作文件操作文件操作文件操作: :读读读读一个文件操作对象由内嵌函数open创建文件对象有一系列函数read函数可以从文件中获取数据队列read:读取整个文件(或者说N字节),返回一个单独的字符串readline:读取一行(然后跳到新的一行)readlines:读取所有的行,返回一个字符串的列表 f = open(test.txt) # 默认: 只读模式 line = f.readline() # 读一行 lineThis is the first line.n lines = f.readlines() # 读所有剩余行 linesThis is the second.n

34、, And third.n有些模块定义的对象类似文件,这些对象具有的方法也让它们表现得像文件一样48PythonPython3入门2文件操作文件操作文件操作文件操作: :写写写写write函数只是简单地输出给定的字符串字符串不一定是ASCII码,二进制串也是可以的 w = open(output.txt, w) # 写模式 (默认写的是文本) w.write(stuff) # 并不自动添加新行 w.write(n) w.write(moren and even moren) w.close()stuffmore and even more49PythonPython3入门2文件操作文件操作文件

35、操作文件操作: :用用用用 forfor循环读取循环读取循环读取循环读取迭代使用for循环一行行读取文件推荐用法infile = open(test.txt) # 只读模式outfile = open(test_upper.txt, w) # 写模式; 创建文件for line in infile: out(line.upper()in() # 并不严格要求; 系统会自动执行out()注意:每行结尾会尾随一个换行符n使用字符串方法strip或者rstrip来去除它50PythonPython3入门2文件操作文件操作文件操作文件操作, ,老式的读取策略老式的读取策略老式的读取策略老式的读取策略老

36、版本的Python不支持这种特性forlineinfile相应地,过去要使用下面这种操作:for line in in(): # 把整个文件按行读进一个行的列表中 do_something(line)for line in in(): # 类似xrange: 内存使用更高效 do_something(line)line = in()while line: # 只有当读到文件结束时line才是空的 do_something(line) line = in()最后一个方案可行是因为readline返回的line自动包含一个”n”换行符只有当读到文件结束时,readline才会返回一个空行,该行的布

37、尔值False51PythonPython3入门2目录目录目录目录1Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试52PythonPython3入门2模块模块模块模块 re,part1re,part1正则表达式:正则表达式就是记录文本规则的代码,是高级字符串模式定义一个模式:定义模式的语法与Perl或者grep的很相似把它应用到一个字符串上处理结果import retext = Hi, I am Shirley Hilton. I am his wife.m = re.findall(hi, text)if m: print (m)else: print (not ma

38、tch)hi, hi把正则表达式改为“Hhi” ,结果为:Hi, hi, Hi, hi把正则表达式改为“i.” ,结果为:i, ir, il, is, if把正则表达式改为“I.*e” ,结果为:I am Shirley Hilton. I am his wife把正则表达式改为“I.*?e” ,结果为:I am Shirle, I am his wife如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。 53PythonPython3入门2模块模块模块模块 syssyssys.argv命令行执行时使用的参数列表;sys.argv0是这个脚本的名字sys.path用来寻

39、找模块的目录路径的列表sys.platform一个用来表示当前操作系统的字符串 import sys sys.platformwin32 import sys sys.stdout.write(the hard way)the hard way12sys.stdout,sys.stdin,sys.stderr预定义的文件处理对象,用于输入/输出print的东西会传给sys.stdout也可以设置成给其他文件sys.exit(n)强制退出Python执行n是一个整数错误代码,通常是054PythonPython3入门2模块模块模块模块 ososos.getcwd():返回当前目录 os.getc

40、wd()M:My DocumentsPython coursetestsos.environ:返回包含当前环境变量的字典Dictionary for k, v in os.environ.items(): print (k, v)TMP C:DOCUME1se22312LOCALS1TempCOMPUTERNAME WS101778USERDOMAIN BIOVITRUMCOMMONPROGRAMFILES C:Program FilesCommon FilesPROCESSOR_IDENTIFIER x86 Family 6 Model 9 Stepping 5, GenuineIntelP

41、ROGRAMFILES C:Program FilesPROCESSOR_REVISION 0905HOME C:emacs.os.chdir(path):把当前路径切换到pathos.listdir(path):返回path下的文件夹目录列表os.mkdir(path):创建一个目录pathos.rmdir(path):删除目录pathos.remove(path):删除文件path55PythonPython3入门2模块模块模块模块 ososos.system(command)在子进程中执行shell命令(字符串string)返回一个整数错误码os.path.exists(path):路径

42、是否存在,是目录还是文件os.path.is):路径是一个文件吗os.path.isdir(path):路径是一个目录吗os.path.abspath(path):返回给定的相对路径的绝对路径 d = os.path.abspath(.) dM:My DocumentsPython coursetestsos.path.dirname(path):返回给定路径的目录 os.path.dirname(d)M:My DocumentsPython course56PythonPython3入门2目录目录目录目录1Python概述2变量和内建数据类型3语句4函数5标准库模块6程序调试57Python

43、Python3入门2程序调式:程序调式:程序调式:程序调式:IDLEIDLE在Shell中打开Debugger选项DebugControl中进行查看控制在IDLE编辑器中可以设置断点58PythonPython3入门2程序调式:程序调式:程序调式:程序调式:PDBPDBpdb是python自带的一个包,为python程序提供了一种交互的源代码调试功能。import pdb a = aaapdb.set_trace() b = bbbc = cccfinal = a + b + c print (final) c:usersdengdidesktopt2.py(4)()- b = bbb(Pdb

44、) 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) 59PythonPython3入门2程序调式:程序调式:程序调式:程序调式:PDBPDB常用命令解释break或b设置断点设置断点continue或c继续执行程序list或l查看当前行的代码段step或s进入函数return或r执行代码直到从当前函

45、数返回exit或q中止并退出next或n执行下一行pp打印变量的值help帮助(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.60PythonPython3入门2THANKYOU61

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号