《非程序员 Python 编程概念快速 Python 语言入门教学,课.pdf》由会员分享,可在线阅读,更多相关《非程序员 Python 编程概念快速 Python 语言入门教学,课.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、快速快速快速快速 Python 语言入门教学语言入门教学语言入门教学语言入门教学,课程课程课程课程,课课课课件件件件,教材教材教材教材,自学自学自学自学,概念概念概念概念 为非程序员准备的简洁 Python 语言教材,欢迎提问欢迎提问欢迎提问欢迎提问。Python 的中文意思是巨蟒,大蟒蛇。计算机编程主要概念计算机编程主要概念计算机编程主要概念计算机编程主要概念 计算机语言编程的主要内容就这些:数字,文字,循环,公式,变量 数字:1,2,3,5.6,120,32.4,3.1415926,-3,-0.123 文字:你好,我好,你太牛了,很黄很暴力,这类的文字。一般用双引号()或者单引号()括起来
2、。术语叫字符串字符串字符串字符串,就是一堆字符,串起来。循环:循环(loop)就是重复的做一件事。计算机是一个很笨的机器,基本上只会做加,减,乘,除,大于,小于,等于和循环这种简单的工作。编程就是把复杂的问题,拆成简单的单元让它重复。幸亏有下面讲到的公式,所以很多较复杂的问题已经有了解决方法,我们只是重复的套用别人的解决公式就可以了,不用拆得太细。Python 语言最大的优势,就是这个语言中包含了大量解决常见问题的公式,你想干的事,基本上都有人帮你干了,你只是需要把他们组织,捆绑起来就可以了。比如下载文件的公式,分析网页内容的公式,压缩文件的公式,处理电子邮件的公式等等。公式:就像数学公式(a
3、+b)2=a2+2ab+b2 这种。算的时候带入具体数值,比如:(3+4)2=32+2*3*4+42=9+24+16=49。前面的(a+b)2 就是我们的公式名(当然编程时,我们会用一些比较容易明白的词组做为公式名,比如“和的平方”这种,英语或者拼音都可以),他需要两个参数 a,b;后面的 a2+2ab+b2 是具体怎么算出来的步骤,这就是我们的公式内容。在计算机里,公式的术语叫“函数函数函数函数”或者“方法”。我们定义一个函数,就是定义一条公式,用的时候,拿来参数 a,b 什么的,套一下公式就行了。为了程序的结构清晰,我们往往会定义很多函数。把复杂的问题分成很多小问题,每个小问题放到一个函数
4、里,然后在解决复杂问题的函数里,使用这些小问题函数解决大问题。更重要的是我们可以大量的使用别人写好的函数来解决自己的问题。函数的作用是让程序结构清晰,而且可以在不同的地方重复套用。变量:就是上面的 a,b 这种可以代表任何值,可以放进不定值的单词。我们用变量来存储我们程序中用到的各种数字,文字,公式。所谓参数,就是定义公式时候用到的变量,就叫参数,换个马甲而已。换成术语,我们有:数字(number)=数字 字符串(string)=文字 循环(loop)=循环 函数方法(function/method)=公式 变量(variable)=变量 到这里,基本上编程就没什么可学得了。剩下的就是掌握各种
5、编程语言特定的函数和循环的书写格式,再掌握了别人已经写好的函数的用法,组合起来就得了。基本编程基本编程基本编程基本编程 最基本的 python 程序:print(世界,你好!)存到文件 hello.py 里,然后命令行下输入 python hello.py 就可以看到结果了。这里就用到了函数和字符串,在屏幕上输出一行:世界,你好!Python 里函数的用法是:函数名(参数 1,参数 2)这里 print 是函数;在屏幕上打印内容,世界,你好!是参数。学会怎么用函数了,再学会定义函数的格式,就差不多了。定义函数定义函数定义函数定义函数 def a_b_pingfang(a,b):c=a*2+2*
6、a*b+b*2 return c 我们定义一个(a+b)2的函数,def 是英语 define 的缩写,意思是定义函数,定义公式。第 1 行就是说我们要定义一个函数名叫 a_b_pingfang 的函数,用它的时候,需要两个参 数 a 和 b。尾巴上有个冒号,冒号的意思是说:“下面的一段就是公式定义了,要注意了”。计算机编程里,*代表乘法,/代表除法,*代表乘方,b*2 就是 b 的二次方。注意:Python 是用是用是用是用 缩进空格缩进空格缩进空格缩进空格 来表示段落的来表示段落的来表示段落的来表示段落的,冒号冒号冒号冒号(:)来表示段落开始来表示段落开始来表示段落开始来表示段落开始。第
7、2 行先缩进 4 个空格,说明下面缩进 4 格的,都是同一段落。用来具体计算上面的定义的公式的。把 a2+2*a*b+b2 的计算结果,放到 c 里。c 类似于 a,b,都是表示一个变量,它可以用来存放数字,文字,甚至函数。这里它存放的是用 a,b 计算后得到的结果。因为不是在函数名里,所以术语叫做“变量”,在函数名里,就叫参数了。“变量”就是用一个单词来代表一个可以变化的量的。单词里可以有字母,数字和下加线(_),数字不能打头。第 3 行,把存在 c 里的结果,传回给函数的使用者。return 命令的意思,就是立即结束函数的执行,把 return 后面的值传给调用者,可以传回多个值。现在可以
8、使用这个公式了,我们叫调用函数调用函数调用函数调用函数:ping2=a_b_pingfang(2,3)ping2 里存放了 a_b_pingfang(2,3)得到的结果,也就是上面 return c 这句,把 c 的内容,传给了外面的 ping2。把结果打印出来:print(ping2)全部程序是:def a_b_pingfang(a,b):c=a*2+2*a*b+b*2 return c ping2=a_b_pingfang(2,3)print(ping2)存到 test2.py,跑 python test2.py 就可以看到输出 25。循环循环循环循环(loop)当然还有循环,怎么让程序重
9、复的做事?我们有 while(当.),for(对于.)命令来进行循环控制。a=0 while a 100:a=a+1 这个循环说,当 a 100 的时候,把 a 增加 1,然后重复。当 a 等于 100 了,就结束了。我们有,=,=,!=来判断大于,小于,等于,小于等于,大于等于,不等于。还有 and,or,not 来进行逻辑运算,所谓逻辑运算,就是测试已有判断之间的关系的:a=1 and b!=2 来测试这两个判断是否同时成立。a=1 or b!=2 来测试这两个判断里是否有至少一个成立。not a=1 来测试这个判断是否是错的。错的就是对的,对的就是错的,颠倒黑白。我们还有 break(中
10、断)来打断循环,和 continue(继续)来立刻回到循环开始,也可以用 if(是否)命令来进行判断:a=0 while True:a=a+1 if a=100:break 这里 True 表示总是正确,相对的是 False 表示错误。这一段是说一直执行,因为 while 总是正确。下面在 if 处判断 a 是否大于等于 100,如果是,那么执行 if 下的段落,这里我们打断了循环。for 循环是利用下面介绍的的列表数据结构对列表进行循环。Python 数据概念数据概念数据概念数据概念 下面具体到 python 特殊的规定,它有几个特殊的存储数据的格式。列表:list 元组:tuple 字典:
11、dict(dictionary)列表列表列表列表(list)列表:把很多变量存进一个列表里,叫列的意思,就因为他像列车一样,一节一节车厢,每厢放一个变量。格式为 b,c,1,3,5,葡萄,葡萄皮儿,可以看到,方括号里,可以放具体的数字,文字,也可以放变量,用逗号分隔。这些内容是在固定位置上,可以通过他们的位置,来提取:alist=1,3,5,很傻,葡萄,葡萄皮儿,a,var1 print(alist0)#打印 1 在 python 里,数数是从 0 开始数的,开始是 0,然后是 1,2,3,4,5,所以上面的列表 alist的第一个内容,可以用 alist0来提取,第二个用 alist2来提取
12、。print(alist4)#打印 葡萄 这里,我们可以介绍用 for 循环来访问这个列表里的所有内容:for me in alist:print(me)上面这一段,打印所有 alist 里的内容。这个循环是,对于列表 alist,从 0 开始,访问它的每一个位置,把这个位置上的值,放到me 里,然后针对不同的 me 值,重复执行下面段落的内容。in 表示 me 在 alist 里,也可以用来判断:if 葡萄 in alist:print 葡萄在 alist 里!这个列表的内容是可以改变的,我们可以把第 4 个位置设为很天真:alist3=alist3+很天真 print(alist3)#打印
13、 很傻 很天真 元组元组元组元组(tuple)元组:元组就是列表,但是他的内容是不能改变的。他的内容只能一开始就设定。但是,元组和列表之间是可以用函数互相转变的,转成列表就可以改变内容,转回元组就不能改了。元组是用圆括号来表示,所以叫元组嘛。atuple=(2,3,老子)alist=list(atuple)#变成 2,3,老子 alist0=0 tuple2=tuple(alist)#变回(0,3,老子)在 python 里,字符串也是一种特殊的元组,也就是内容不可变的字符列表。txt=abcdefg print(txt1)#b 字典字典字典字典(dict)字典:字典就像一般的字典,一个字,一
14、个解释,再一个字,再一个解释。用大括号表示:adict=1:我是解释,2:我是解释 2,我是 3:3,我是 4:4 前面的字叫钥匙(key)或者索引,后面的解释,叫值。索引不能重复,必须是唯一的。我们可以看到,前面的字,和后面的解释可以是数字,文字,还可以是函数或者元组。但是前面的字,不能是列表,因为列表内容是可变的,可变的东西都不能做索引。我们用索引来提取值,而不是用位置:adict1#我是解释 adict我是 3#3 模块模块模块模块(module)Python 里包涵了很多别人写好的函数、方法让我们直接利用。譬如写网络程序的函数,数 学计算的函数,分析电邮文件的函数,加密的函数。这些函数
15、分门别类的放到叫“模块”的东西里。一个模块里,包括很多功能相类的函数。而具体实现上,一个模块,就是一个 python 的程序文件。如果模块还还需要细分更多层,那么每层就是一个文件目录。里面有很多做为模块的 python 文件。要使用模块,我们用“进口”这个命令:import import time now=time.clock()print(now)这里,我们先进口 time 模块,然后使用 time 模块里的函数 clock(),得到当前时间,打印出来。用个句点表示模块 time 里的 clock 函数:模块名.函数名 在 python 里,我们会用到很多别人写的模块,能自己少写点儿源码,尽
16、量少写,懒不是?类类类类(class)其实编程来说,类并不是必须的,但是因为很多 python 提供的模块,里面的函数都是包在类里面的,所以我们需要介绍一下类。面向对象编程,是现在比较流行的编程模式,是个人都得用“面像对象”的思路来编程。基本上就是把同类的函数,打包放到一个叫“类”的东西里。这个“类”一般上是以具体的东西为模子,譬如物种:人类,猫类;物品:家俱类,电器类。他里面打包的函数,基本上是针对这个类进行操作的,譬如人说话,人吃饭,猫逮耗子,家居磨损。使用类的时候,我们先具体化他,把类变成个体。人类变成某人,猫类变成某猫,家俱变 成某家俱语法上比较怪,只好变成一件家俱。这个具体化的类,就
17、是所谓的“对象(object)”。然后我们就可以使用这个具体人,猫,家居的函数,针对具体的人,物进行操作了。定义类定义类定义类定义类 class RenLei:def _init_(self,mingzi):#self 是一个固定参数,代表这个对象自己。self.mingzi=mingzi#把名字存到对象自己的 mingzi 变量上。def shui2(self):return self.mingzi 在类的定义里,每一个函数,他的第一个参数,都是规定死的,必须是 self。self 代表这个对象自己。这个对像本身的变量,函数,都是通过这个自己来存取的。你可以管他叫 wo3,you,me,用什
18、么名字随便,但是第一位置的,就是代表对象自己。def _init_(wo3,mingzi):wo3.mingzi=mingzi 也可以。在调用类里的函数时,不用提供 self 这个参数,程序自动加入 self。我们只要提供其他参数即可。_init_()这个函数是特殊函数,他代表建立函数的时候,需要的使用的参数。通过类建立函数的时候,程序会自动调用 _init_()函数。具体化类具体化类具体化类具体化类,建立对象建立对象建立对象建立对象#建立对象,提供的函数对应_init_()函数,self 参数程序自动提供,不用我们提供。xiaozhang1=RenLei(小张)mingzi=xiaozhan
19、g1.shui2()#使用“对象名.函数名()”的格式来调用类里的函数。print mingzi-小张 字符串的对象性质字符串的对象性质字符串的对象性质字符串的对象性质 Python 里的字符串,列表,元组,字典,都是面对对象的类,所以他们本身带有很多函数可以对自己进行操作,譬如:a=握手 不一定 就是 友谊.split()split 是字符串的函数,他可以把字符串在给定位置分段,当我们不给他参数的时候,会在所有空白位置分割,然后返回一个列表,里面是被割裂的字符串。结果,a 的内容是 握手,不一定,就是,友谊,这是一个有 4 个元素的列表。对于字符串,列表,字典之类的操作,请熟读说明手册他们的
20、说明,python 编程,主要就靠字符串,列表和字典了。Python 程序书编程习惯程序书编程习惯程序书编程习惯程序书编程习惯 写一个 Python 程序,我们一般步骤是:1.进口所有会用到到模块 import 2.定义我们自己的类和函数。每个函数里要用到的函数,被调用的函数一般放在调用函数的前面定义。这样我们读程序的时候,就知道调用的函数,在前面是怎么定义的,有什么功能,需要什么参数,返回什么值。3.在文件的最下面,调用上面定义的函数和类,开始工作。4.尽量使用 python 提供的内建函数和模块里的函数,所以我们对 Python 的模块说明手册要很熟悉。Python 运行,是从文件的上面往
21、下走的,看到命令执行命令,一直到最后一行。当我们定义函数和类的时候,他们只是定义,而没有执行,所以 Python 看到他们,先存起来,直到看到定义外的具体命令,才真正的执行。如果这个命令调用上面的函数,那么就把存起来的函数执行一下。Python 里注释符号是#。就是说,在#符号后的那一行文字,都当做解释,不做为程序的命令。print(打酱油!)#print(关我屁事)只打印出“打酱油”,剩下的,因为是在#后面,所以程序把他们当做注释语言自动忽略了。完整例子:把一个两列的文件 input.txt,分割成两个文件 col1.txt,col2.txt,一个文件一列。input.txt 内容:a1 啊
22、阿 ai1 挨埃哀 ao2 熬鳌翱獒 程序内容:def split_file(filename):#把文件分成两列 col1=#存储第一列 col2=fd=open(filename)#open 函数用来打开文件,返回一个文件对象 text=fd.read()#fd.read 读入文件 fd 的内容。lines=text.splitlines()#把读入的内容分行 for line in lines:#循环每一行 part=line.split(None,1)#分割一行。col1.append(part0)#把分割的第一部分放到 col1 后面。col2.append(part1)return
23、 col1,col2#返回 col1,col2 def write_list(filename,alist):#把文字列表内容写入文件 fd=open(filename,w)#打开输出文件 col1.txt,w指定使用写入模式。for line in alist:fd.write(line+n)def main():#主函数,程序进入点,习惯性叫他 main()filename=input.txt#把输入文件名 input.txt 放进一个变量 col1,col2=split_file(filename)#调用分割函数,结果存入 col1,col2 write_list(col1.txt,co
24、l1)#调用写入函数 write_list(col2.txt,col2)main()#唯一的函数外命令,程序开始执行,调用上面的 main()函数数。这里,输入的文件名是写死的 input.txt,我们可以使用模块 optparse 来通过命令行读取用户提供的文件,会更灵活些。参考资料参考资料参考资料参考资料 更多的功能,函数,请参考 python 的官方教学和手册。先熟悉:内建函数 内建数据类型(字符串,数字,列表,字典,文件对象)sys 模块 re 模块 os 模块 optparse 模块 熟悉这些,基本上编程没问题了。深入 Python 是一本经典的参考书,虽然没有涵盖所有 python 模块的内容,但是对初学者基本够用。而且它是一个自由文件,说俗了就是合法免费的,又有中文翻译版,难得。也可以参考 Python 绝对简明手册这个中文说明。如果需要网络编程,还要熟悉网络相关的模块。如果想要图形界面,建议使用 pygtk 或者 pyqt图形界面函数库,这时候,也需要熟悉面对对象编程的概念。对于英文不好的人,建议买一本有 Python 函数模块介绍的中文书,作为参考书,在编程的时候,边编边翻书。Python 的中文意思是巨蟒,大蟒蛇。但是这个语言的具体出处是一个叫 Monty Python 的英 国电视剧。