Python完全新手教程.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python完全新手教程.doc》由用户(2023DOC)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 完全 新手 教程
- 资源描述:
-
1、Lesson 1 准备好学习Python的环境下载的地址是:www.python.org linux版本的我就不说了,因为如果你能够使用linux并安装好说明你可以一切自己搞定的。运行环境可以是linux或者是windows:1、linuxredhat的linux安装上去之后一定会有python的(必须的组件),在命令行中输入python回车。这样就可以进入一个的提示符2、windows安装好了python之后,在开始菜单里面找到Python2.3-IDLE,运行也会进入一个有提示符的窗口开始尝试Python1、输入:welcome = Hello!回车然后又回到了2、输入:print wel
2、come回车然后就可以看到你自己输入的问候了。Lesson 2 搞定环境之后的前行Python有一个交互式的命令行,大家已经看到了吧。所以可以比较方便的学习和尝试,不用“新建存档编译调试”,非常适合快速的尝试。一开始从变量开始(其实说变量,更准确的是对象,Python中什么都可以理解为对象)。变量welcome = hello!welcome就是变量名,字符串就是变量的类型,hello!就是变量的内容,表示这个变量是字符串,中间的是字符串的内容。熟悉其他语言的人,特别是编译类型的语言,觉得没有变量的声明很奇怪。在python中用赋值来表示我要这么一个变量,即使你不知道要放什么内容,只是要先弄一
3、个地方来放你的东西,也要这么写:store = 不过这个还是说明了store是字符串,因为的缘故。have a try代码:tmp_storage = welcome = hello!tmp_storage = welcomeprint tmp_storage你会发现同样的问候出现了。字符串字符串是用标记的,但是用也可以(不要说你看不出一个是双引号,一个是单引号),两者之间是有一丁点区别,不过你可以不用理会。其实是差不多的。字符串有很多自己的操作,最常用的是这样的:代码:welcome = helloyou = world!print welcome+you运行之后就会发现她输出了hellow
4、orld!。更多变量变量还有几种类型。数字符串列表字典文件勿庸置疑,这些都是非常非常常用的。对于数字就不用讲了那就是:代码:radius = 10pi = 3.14area = pi*radius*2print the area is, area下次讲列表和字典Lesson 3 Python中的数学结构数学中你学什么东西最多遍?我想根据我的一点浅薄经验(虽然我是数学系的),学得最多的是集合,无论什么数学书都从集合开始讲起。然后讲函数呢,又必然把映射再讲一遍。可以说,集合和映射是数学中最基本的结构了。Python对于数据结构非常明智的内置了两个,回想我写C的程序,往往是一开始就是用struct拼
5、一个链表出来(重复劳动)。Python中提供了列表(list)和字典(dict)两种数据结构。他们分别对应的原型是集合和映射。这个你应该明白了,只是表示方法有一点不一样而已。列表列表的英文名是list嘛,所以我取一个名字叫代码:my_list = 这个就产生了一个空的列表。然后给它赋值my_list = 1,2print my_listmy_list.append(3)print my_list非常容易明白的。append前面加了一个点,这个表示append是my_list方法。我实在不想又去给你解释什么是对象,什么是成员方法,然后扯出一大段出来。list是可以索引的:print my_lis
6、t1不过你或许会不明白为什么是2,而不是显示的是1。因为索引从0开始,要输出第一个元素:print my_list0字典代码:contact = 这个产生了一个空字典,contact。然后往里面填充内容:代码:contact=contactname=taowencontactphone=68942443name就是你查字典的时候要查找的单词,taowen就是查到的内容。不过你现在不是查,而是在写这个字典。同理添加了phone这个词条。现在添加好了,看看contact的内容,怎么查看?自己想办法吧。如果你悟性够,就会发现python很多操作是通用的,既然能够print 1, print , pr
7、int my_list,那么其他数据类型的变量就没有理由不能用了。结合列表和字典代码:contact_list=contact1=contact1name=taowencontact1phone=68942443contact_list.append(contact1)contact2=contact2name=godcontact2phone=44448888contact_list.append(contact2)呵呵,够复杂的吧。你可以想出我为什么要用两个contact字典呢?。Lesson 4 用不同的方式来操作Python到现在为止,我们用的都是交互式的命令行来操作的,的却是很方便,
8、是吧?不过,复杂一些的情况就不那么好使了,来换一种方式来操作Python在IDLE中点击File-New Window,出现一个新窗口(对于linux下,你要用vim或者emacs或者pico把文本的源文件写好了)。为了方便,先点击File-Save,填入my_try.py。这样能够让编辑器知道在编辑python的源文件,会把你输入的代码进行一点上色的处理。填入下面的代码:代码:i = 5n = 0while i0: n = n + i i = i - 1print n你会发现输入:之后,自动会给缩进。而且也没有在python中发现和C/C+中类似的标记也没有pascal中的beginend;
9、,其实缩进就是python中表示一段代码的从属关系的标记方法。表示n=n+1和i=i-1这两句都是while的。程序的运行逻辑应该不用解释了吧。就是运行5+4+3+2+1的结果。运行代码按F5,可能提示你没有存盘,照着办就是了。发挥你的能力,计算从1到10的所有偶数的和(提示,可能没有你想象的那么智能)。Lesson 5 Python中的输入与判断健全的程序大凡都需要输入的功能,所以要学习一下简单的输入:输入要使用的是raw_input或者input函数,区别是raw_input直接把你的输入作为字符串返回,而input则在raw_input的基础上把字符串转换为数字返回(如果你输入$#$怎么
10、办?自己试试看)。我们就利用这两个输入函数来作一些有趣的事情。代码:your_name = raw_input(please input your name:)hint = welcome! %s % your_nameprint hint不简单吧,还有%呢。%s表示在这个位置插入一个字符串,%表示把后面提供的参数“推”入前面的字符串中,所以推的结果是把%s推出去了,把your_name给填入那个地方了。printf知道吧,C中的printf就是一样的嘛。代码:inputed_num = 0while 1: inputed_num = input(input a number between
11、1 and 10n) if inputed_num = 10: pass elif inputed_num 1: pass else: breakprint hehe, dont follow, wont outpass就是pass了,过了嘛,什么都不干了。break就是跳出这个while 1(无穷循环,1总是真的,while总是执行)。n是换行,不会全部忘光了吧。Lesson 6 Python余兴节目代码:from Tkinter import *root = Tk()w = Label(root, text=Hello, world!)w.pack()root.mainloop()呵呵,一
12、次太超前了一点,不过也不是解释不清楚。我干脆也不解释了吧。给大家增进一点兴趣。还是解释一下fromt Tkinter import *是引入一个模块,这个模块用来创建GUI(Graphic User Interface)窗口Tk()创建了一个主窗口Label()创建一个标签Label的第一个参数是root表明Label是在这个主窗口中的。w.pack()是指用缺省的方式把Label放置在主窗口中root.mainloop()开始了一个循环,是等待你的输入的循环。Lesson 7 Python基本语法要素齐动员现在的目的是尽量想出一个用的东西仅限于内置的变量类型和语句的一个综合的例子,我想还是那
13、个联系人表的例子吧代码:#呵呵,还忘记了讲注释#第一个算是完整的程序#contact = contact_list = while 1: contactname = raw_input(please input name: ) contactphone = raw_input(please input phone number: ) contact_list.append(contact.copy() go_on = raw_input(continue?n) if go_on = yes: pass elif go_on = no: break else: print you didnt s
14、ay noni = 1for contact in contact_list: print %d: name=%s % (i, contactname) print %d: phone=%s % (i, contactphone) i = i + 1首先是回忆一下字符串字符串既能够用也能够用。然后是很有特色的%操作,起到格式化字符串的作用,前面仅仅在字符串中有一个%s,现在有%d和%s两个,分别代表插入十进制数值和字符串于%x标记的位置处。然后是列表列表是顺序的序列,用append在后面附加,也能构用索引值索引。所以我们完全可以用一个变量保存len(contact_list)得到的长度,然后一
15、个个的遍历,不过这里展示了另外一种非常方便的方法。而且值得注意的是append()中的参数,我使用了contact.copy(),你可以尝试着把copy()给去掉,观察结果你就知道了所谓的append是怎么干的了,特别是你对指针之类的东西很有感觉的话(但是在Python中是没有指针这个概念的)再来看看字典字典是键(key)和值(value)的对应组合成的无序的序列。所以你存的时候要指明键(name或者phone),而且取的时候也是一样的。接下来是判断if是很好用的,=表示判断两个是否相等,=表示把右边的赋给左边的。而且可以直接判断字符串是否相等,这个太方便了,如果你曾经用过strcpy()的话
16、,就知道了。elif是表示else if的意思,如果if不满足就判断elif的条件是否满足,最后是到else中去。循环是个主体while和for都是循环。不过这里while就没什么说的了,又是很经典的while 1,死循环,然后必须在里面用break来跳出。for和C中的for是不一样的,for in才是一个完整的语句,指的是从一个能够逐一取值的序列中(比如list),一个一个的取出值赋给for后面指定的变量中,直到取空,循环结束。其实回想一般用C中的for的经历,也大体如此。而且你还可以用for i in range(1,100)来指定一个范围从多少到多少。可以说for in充分体现了pyt
17、hon的体贴周到,用起来很直观,不会绕弯。接下来就是运行了,大家慢慢调试吧。下次可能是讲异常处理,因为我觉得在深入到使用各种高级的要素之前,先要学会怎么去处理异常。最常见的异常应该是input(),然后你给出的输入是一个无法转换为数字的字符串了,那么我们就要来处理它。Lesson 8 Python中的错误检测写程序什么最重要?完成功能最重要。但是程序中难免要有用户的输入,对于这些写的时候未可预知的因素中间可能出现的错误,一般称作异常。对于异常情况的处理,不同语言有不同的做法,比如检查函数的返回值之类的,但是那种办法会把代码弄成一团浆糊。Python在这个方面是比较先进的,我们从一个例子来看看:
18、代码:print input()呵呵,看不同吧。其实input是输入,print是输出。也就是把输入的东西立即输出。但是这个和代码:print raw_input()有什么不同呢?不同的地方是,input()会在raw_input()接收了“字符串”的输入之后进行一些处理,比如你是输入1+2,然后输出的就是3了,而raw_input就是原原本本的1+2的输出了。用代码表示就是代码:eval(raw_input()eval是求表达式的值,任何一个简单的python表达式,就像1+2这样的作为字符串送入,就能把值从eval处理之后取出来。现在你实验一下sdfsdf”之后,你会发现提示你引用:Tra
19、ceback (most recent call last):File , line 1, in -toplevel- input()File , line 0, in -toplevel-NameError: name sdfsdf is not defined如果输入其他稀奇古怪的字符串还可能有其他的出错提示,我们现在要做的就是捕捉这种由用户输入引起的错误。这么来作:代码:try: print input()except: print there is an error in your input这下你无论怎么输入都不会有什么其他的提示了,就是自己设定的print语句作为提示。现在把try
20、 except的组合去掉,回到print input()你再尝试一下:1/0这个显然是一个错误,被零除的错误。那么专门来捕捉一下这个错误:代码:try: print input()except ZeroDivisionError: print can not be divided by zero这下你能够捕捉到被零除的错误了。然后你再尝试其他的输入,可能错误就没有被捕捉了。所以再补上:代码:try: print input()except ZeroDivisionError: print can not be divided by zeroexcept: print there is an e
21、rror in your input注意,捕捉所有错误的except必须放在所有的except的最后一位。明白了?OK还有更多的能够捕捉的错误,自己查手册吧(暂时看不了手册没关系,慢慢来嘛)。以后还能够自己raise(引发)异常呢。不过那都是比较高级的应用了,对于出错处理从一开始就有这个印象,并牢记在心中对于以后写大一些的软件很有好处。Lesson 9 走向模块化的第一步大规模的程序设计需要你把一个大的程序拆分成n个模块。然后把模块进行组合,交互成为一个完整的程序。你不可能像现在这样,从顶写到尾。那么我们从函数开始。代码:def square(x): return x*2print squar
展开阅读全文