ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:85.75KB ,
资源ID:26421712      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26421712.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(python 学习.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

python 学习.docx

1、python 学习一、字符串和编码1:Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符2:以Unicode表示的str通过encode()方法可以编码为指定的bytes,反过来,要把bytes变为str,就需要用decode()方法3:len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数4:由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:#!/usr/

2、bin/env python3# -*- coding: utf-8 -*-第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码格式化:%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。常见的占位符有:%d整数%f浮点数%s字符串%x十六进制整数二、使用list和tuplePython内置的一种数据类型是列表:list。list是一

3、种有序的集合,可以随时添加和删除其中的元素。list是一个可变的有序表,所以,可以往list中追加元素到末尾: classmates.append(Adam) classmatesMichael, Bob, Tracy, Adam也可以把元素插入到指定的位置,比如索引号为1的位置: classmates.insert(1, Jack) classmatesMichael, Jack, Bob, Tracy, Adam要删除list末尾的元素,用pop()方法: classmates.pop()Adam classmatesMichael, Jack, Bob, Tracy要删除指定位置的元素,

4、用pop(i)方法,其中i是索引位置: classmates.pop(1)Jack classmatesMichael, Bob, Tracy要把某个元素替换成别的元素,可以直接赋值给对应的索引位置: classmates1 = Sarah classmatesMichael, Sarah, Tracylist里面的元素的数据类型也可以不同,比如: L = Apple, 123, Truelist元素也可以是另一个list,比如: s = python, java, asp, php, scheme len(s)4要注意s只有4个元素,其中s2又是一个list,如果拆开写就更容易理解了: p

5、= asp, php s = python, java, p, scheme要拿到php可以写p1或者s21,因此s可以看成是一个二维数组,类似的还有三维、四维数组,不过很少用到。如果一个list中一个元素也没有,就是一个空的list,它的长度为0: L = len(L)0使用list和tuple阅读: 533721listPython内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示: classmates = Michael, Bob, Tracy classmatesMichael, Bob,

6、 Tracy变量classmates就是一个list。用len()函数可以获得list元素的个数: len(classmates)3用索引来访问list中每一个位置的元素,记得索引是从0开始的: classmates0Michael classmates1Bob classmates2Tracy classmates3Traceback (most recent call last): File , line 1, in IndexError: list index out of range当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个

7、元素的索引是len(classmates) - 1。如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素: classmates-1Tracy以此类推,可以获取倒数第2个、倒数第3个: classmates-2Bob classmates-3Michael classmates-4Traceback (most recent call last): File , line 1, in IndexError: list index out of range当然,倒数第4个就越界了。list是一个可变的有序表,所以,可以往list中追加元素到末尾: classmate

8、s.append(Adam) classmatesMichael, Bob, Tracy, Adam也可以把元素插入到指定的位置,比如索引号为1的位置: classmates.insert(1, Jack) classmatesMichael, Jack, Bob, Tracy, Adam要删除list末尾的元素,用pop()方法: classmates.pop()Adam classmatesMichael, Jack, Bob, Tracy要删除指定位置的元素,用pop(i)方法,其中i是索引位置: classmates.pop(1)Jack classmatesMichael, Bob,

9、 Tracy要把某个元素替换成别的元素,可以直接赋值给对应的索引位置: classmates1 = Sarah classmatesMichael, Sarah, Tracylist里面的元素的数据类型也可以不同,比如: L = Apple, 123, Truelist元素也可以是另一个list,比如: s = python, java, asp, php, scheme len(s)4要注意s只有4个元素,其中s2又是一个list,如果拆开写就更容易理解了: p = asp, php s = python, java, p, scheme要拿到php可以写p1或者s21,因此s可以看成是一个

10、二维数组,类似的还有三维、四维数组,不过很少用到。如果一个list中一个元素也没有,就是一个空的list,它的长度为0: L = len(L)0tuple另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字: classmates = (Michael, Bob, Tracy)现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates0,classmates-1,但不能赋值成另外的元素但是,要定义一个只有

11、1个元素的tuple,如果你这么定义: t = (1) t1定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义: t = (1,) t(1,)Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号条件判断:Else if 语句应elif表示。age = 3if age = 18: print(adult)elif age = 6: print(teen

12、ager)else: print(kid)elif是else if的缩写 input:birth = input(birth: )if birth 2000: print(00前)else: print(00后)输入1982,结果报错:Traceback (most recent call last): File , line 1, in TypeError: unorderable types: str() int()这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:s = input(birth

13、: )birth = int(s)if birth (0, 1, 2, 3, 4, 5):3(0, 1, 2)字符串xxx也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串: ABCDEFG:3ABC ABCDEFG:2ACEG在很多编程语言中,针对字符串提供了很多各种截取函数(例如,substring),其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。2、 迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration

14、)。3、列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。# ex 把list中所有字符串变成小写L=Hello,World,IBM,Appleprint(s.lower()for s in L)生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那

15、后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的改成(),就创建了一个generatora, b = b, a + b相当于:t = (b, a + b) # t是一个tuplea = t0b = t1迭代器:可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list、tuple、

16、dict、set、str等;一类是generator,包括生成器和带yield的generator function。这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。把list、dict、str等Iterable变成Iterator可以使用iter()函数: isinstance(iter(), Iterator)Tr

17、ue isinstance(iter(abc), Iterator)True你可能会问,为什么list、dict、str等数据类型不是Iterator?这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。小结凡是可作用于for循环的对象都是Iterable类型;凡是可作用于ne

18、xt()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。Python的for循环本质上就是通过不断调用next()函数实现的函数式编程未完。待续ScrapyScrapy 使用了 Twisted异步网络库来处理网络通讯。整体架构大致如下Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回.

19、可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader)用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders)爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面 项目管道(Pipeline)负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。 下载器中间件(Downloader Middlewares)位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。 爬虫中间件(Spider Middlewares)介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。 调度中间件(Scheduler Middewares)介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1