自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(86)
  • 收藏
  • 关注

转载 POP3接收邮件

#SMTP用于发送邮件,如果要收取邮件呢?#收取邮件就是编写一个MUA作为客户端,从MDA获取邮件到用户的电脑或手机上。收取邮件最常用的协议是POP,目前版本是3,俗称POP3.#Python内置了一个poplib模块,用于实现POP3协议,可以直接用来收取邮件。#注意POP3协议收取的不是可以阅读的邮件,而是邮件的原始文本。这和SMTP协议很像,SMTP发送的也是经过编码后...

2018-02-23 21:24:00 280

转载 发送邮件

#SMTP是发送邮件的协议,Python内置对SMTP支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。本节腾讯企业邮箱的服务为例进行介绍。学习本节内容时,可以自己开通对应的邮箱服务,各个邮件服务公司有介绍邮箱服务的开通方法,参照这些开通方法开通即可。如果安装了邮箱服务,就可以使用自己的邮箱服务器进行学习。1、SMTP发送邮件#Python对SMTP的支持有smtpl...

2018-02-22 08:39:00 490

转载 电子邮件介绍

#Email(电子邮件)的历史比Web还要久远。直到现在,Email还是互联网上应用非常广泛的服务。#在我们开始编写邮件操作的相关代码之前,先了解一下电子邮件在互联网上是如何运作的。#电子邮件其实是我们生活中快递的电子化,现实中快递是怎么处理的,比如你在上海,要邮寄一份文件给北京的朋友。#首先需要准备好邮寄的文件,选择一家快递公司(一般是上门取件或到代理点投递),快递公司会提...

2018-02-21 20:58:00 784

转载 线程优先级队列

#Queue模块可以用来进行线程间的通信,让各个线程之间共享数据。#Python的Queue模块提供了同步、线程安全的队列类,包括FIFO(先入先出)队列Queue、LIFO(后入先出)队列LifoQueue和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列实现线程间的同步。#Queue模块中的常用方法如下表:...

2018-02-08 22:20:00 175

转载 线程同步

#如果多个线程共同修改某个数据,就可能出现不可预料的结果。为了保证数据的正确性,需要对多个线程进行同步。#使用Thread对象的Lock和RLock可以实现简单的线程同步,这两个对象都有acquire方法和release方法。对于每次只允许一个线程操作的数据,可以将操作放到acquire和release方法之间。#多线程的优势在于可以同时运行多个任务,但当线程需要共享数据时,可能...

2018-02-04 21:44:00 77

转载 threading模块

#更高级别的threading不仅提供了Thread类,还提供了各种非常好用的同步机制。#_thread模块不支持守护线程,当主线程退出时,所有子线程无论是否在工作,都会被强制退出。threading模块支持守护线程,守护线程一般时一个等待客户请求的服务器,如果没有客户提出请求,就一直等着。如果设定一个线程为守护线程,就表示这个线程不重要,在进程退出时,不用等待这个线程退出。如果主线...

2018-02-03 23:48:00 76

转载 _thread模块

#Python中调用_thread模块中的start_new_thread()函数产生新线程。_thread的语法如下:1 _thread.start_new._thread(function,args[,kwargs])#其中,function为线程函数:args为传递给线程函数的参数,必须是tuple类型;kwargs为可选参数。#_thread模块除了产生线程外...

2018-02-02 08:44:00 218

转载 使用线程

1、全局解释器锁#Python代码的执行由Python虚拟机(解释器主循环)控制。Python在设计之处就考虑到在主循环中只能有一个线程执行,虽然Python解释器中可以“运行”多个线程,但是在任意时刻只有一个线程在解释器中运行。#Python虚拟机的访问由全局解释器锁(GIL)控制,这个锁能保证同一时刻只有一个线程运行。#在多线程环境下,Python虚拟机按以下方式执行:...

2018-02-01 08:44:00 58

转载 线程和进程

1、进程#进程(Process,有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈以及记录运行轨迹的辅助数据,操作系统管理运行的所有进程,并为这些进程公平分配时间。进程可以通过fork和spawn操作完成其他任务。因为各个进程有自己的内存空间、数据栈等,所以只能使用进程间通信(IPC),而不能直接共享信息。2、线程#线程(Thread,有时...

2018-01-31 09:04:00 80

转载 序列化与反序列化

#在运行程序的过程中,所有变量都在内存中,我们把变量从内存中变成可存储或传输的过程称为序列化。我们可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新独到内存里称为反序列化。#序列化是指将数据结构或对象转换成二进制串的过程。#反序列化是指将序列化过程中生成的二进制串转换成数据结构或对象的过程。#下面我们了解下Python中序列化或反...

2018-01-30 08:30:00 87

转载 StringIO函数

#数据的读取除了通过文件,还可以在内存中进行。Python中的io模块提供了对str操作的StringIO函数。#要把str写入StringIO,我们需要创建一个StringIO,然后像文件一样写入。操作示例如下:1 #!/usr/bin/python32 #-*-coding:UTF-8-*-3 #StringIO4 5 from io import Str...

2018-01-29 08:39:00 386

转载 对文件内容进行迭代

#前面了解了文件的基本操作方法。在实际应用中,对文件内容进行迭代和重复执行操作是比较常见的操作。#所谓迭代,是指不断重复某一个动作,直到这些动作都完成为止。1、按字节处理#在while循环中,read方法是最常见的对文件内容进行迭代的方法,例如: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #file_whi...

2018-01-28 08:38:00 457

转载 基本文件方法

#前面了解了打开文件的open函数,也做了一些简单的示例,接下来介绍一些基本文件方法,在开始介绍之前,首先了解一下流的概念。#I/O编程中,Stream(流)是一个很重要的概念。可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。浏览网页时,浏览器和服务器之间至...

2018-01-27 22:37:00 102

转载 打开文件

#在Python中,打开文件使用的是open函数。open函数的基本语法如下:1 open(file_name[,access_mode][,buffering])#参数解析#file_name变量:是一个包含要访问的文件名称的字符串值。#access_mode变量:指打开文件的模式,对应有只读、写入、追加等。access_mode变量值不是必需的(不带acc...

2018-01-26 18:19:00 139

转载 正则表达式知识点汇总

1、什么是正则表达式?答:正则表达式是一个特殊字符序列,能帮助用户检查一个字符串是否与某种模式匹配,从而达成快速检索或替换符合某个模式、规则的文本。2、re模块中的match函数和search方法怎么使用,两者的区别是什么?答:match:re.match函数只匹配字符串开始的字符,如果开始的字符不符合正则表达式,匹配就会失败,函数返回None。1...

2018-01-25 17:08:00 96

转载 编译

#当我们在Python中使用正则表达式时,re模块内部会做两件事情:1、编译正则表达式,如果正则表达式的字符串本身不合法,就会报错。2、用编译后的正则表达式匹配字符串。#如果一个正则表达式需要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,这样重复使用时就不需要编译这个步骤,直接匹配即可,例如:1 #!/usr/bin/python32 #-*-cod...

2018-01-24 08:37:00 84

转载 替换

#Python的re模块提供了re.sub,用于替换字符串中的匹配项。#sub(repl,string[,count])|re.sub(pattern,repl,string[,count]):使用repl替换string中每一个匹配的子串后返回替换后的字符串。当repl是一个方法时,这个方法应当只接受一个参数(match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组...

2018-01-23 08:39:00 92

转载 贪婪模式和非贪婪模式

#正则表达式通常使用于查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能默认是非贪婪),总是尝试匹配尽可能多的字符;非贪婪模式刚好相反,总是尝试匹配尽可能少的字符。#例如,正则表达式"ab*"如果用于查找"abbbc",就会找到"abbb"。如果使用非贪婪的数量词"ab*?",就会找到"a"。#例如1 #!/usr/bin/python32 #-*...

2018-01-22 08:59:00 97

转载 re模块

#经过前面的知识储备,我们可以在Python中使用正则表达式了。Python通过re模块提供对正则表达式的支持。1、re.match函数#一般使用re的步骤是先将正则表达式的字符串形式编译为Pattem实例,然后使用Pattem实例处理文本并获得匹配结果(一个match函数),最后使用match函数获得信息,进行其他操作。#re.match函数尝试从字符串的起始位置匹配...

2018-01-20 00:25:00 79

转载 认识正则表达式

#正则表达式是一个特殊字符序列,能帮助用户检查一个字符串是否与某种模式匹配,从而达成快速检索或替换符合某个模式、规则的文本。例如,可以在文档中使用一个正则表达式表达式表示特定文字,然后将其全部删除或替换成别的文字。#Python自1.5版本起增加了re模块,它提供了perl风格的正则表达式模块,re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和...

2018-01-19 23:53:00 50

转载 时间知识点汇总

1、在Python中,通常用哪3种方式表示时间?答:1 在Python中,通常用时间戳、格式化的时间字符串和元组3种方式表示时间2、time模块有哪些常用方法,都如何使用?答: 1 ①time()函数用于返回当前时间的时间戳。 time.time() 2 ②localtime()函数的作用是格式化时间戳为本地时间。 time.localti...

2018-01-17 08:43:00 263

转载 日历模块

#日历(calendar)模块的函数都与日历相关,如输出某月的字符月历。星期一默认是每周的第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数,模块包含以下内置函数。1、calendar.calendar(year,w=2,l=1,c=6)#该函数返回一个多行字符串格式的year年历,3个月一行,间隔距离为c。每日宽度间隔为...

2018-01-16 08:57:00 126

转载 datetime模块

#datetime是date与time的结合体,包括date与time的所有信息。datetime的功能强大,支持0001年到9999年。#datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR。这两个常量分别表示datetime所能表示的最小、最大年份。其中,MINYEAR=1,MAXYEAR=9999。#datetime模块定义...

2018-01-15 08:57:00 227

转载 time模块

#前面已经了解了时间的基本概念,接着将具体了解time模块中的一些常用函数。time模块的内置函数有做时间处理的,也有转换时间格式的。 1、time()函数#time()函数用于返回当前时间的时间戳(1970年01月01日08时00分00秒到现在的浮点秒数)。#time()函数的语法如下:time.time()#此语法中第一个time指的是time模块,该函数不...

2018-01-14 10:35:00 114

转载 日期和时间

#在代码中,我们常常需要和时间打交道。在Python中,与时间处理有关的模块包括time、datetime以及calendar.#在Python中,通常用时间戳、格式化的时间字符串和元组3中方式表示时间。下面分别进行讲解。1、时间戳#通常,时间戳(timestamp)表示从1970年1月1日00时00分00秒开始按秒计算的偏移量,也就是从1970年01月01日00时00分00...

2018-01-11 11:41:00 97

转载 异常和函数

#异常和函数能够很自然的一起工作。如果异常在函数内引发而不处理,就会被传播至函数调用的地方。如果异常在函数调用的地方也没有被调用,就会继续传播,一直达到主程序。#如果主程序也没有做异常处理,异常就会被Python解释器捕获,输出一个错误信息,然后退出程序。#例如: 1 2 #!/usr/bin/python3 3 #-*-coding:UTF-8-*...

2018-01-08 15:25:00 102

转载 finally子句

#Python中的finally子句需要和try子句一起使用,组成try/finally的语句形式,try/finally语句无论发生异常与否都将执行最后的代码。#示例如下: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #异常9.10_finally 4 5 def use_finally(x,y): 6...

2018-01-05 08:54:00 195

转载 自定义异常

#尽管内建异常类包括了大部分异常,而且可以满足很多要求,但有时还是要自己创建自己的异常类。比如要精确知道问题的根源,就需要使用自定义异常精确定位问题。可以通过创建一个新exception类拥有自己的异常。异常应该继承自Exception类,可以直接继承,也可以间接继承。#因为错误就是类,捕获一个错误就是捕获该类的一个实例,因此错误并不是凭空产生的,而是由一些不合理的部分导致的。Pyt...

2018-01-04 08:48:00 91

转载 异常中的else

#如果程序执行完异常还需要做其他事情,该怎么做呢?#异常为我们提供了try..except...else语句实现该功能,语法如下:1 try:2 <语句> #运行别的代码3 except<名字>:4 <语句> #如果在try部分引发了异常15 except<名字>,<数据>:6 &lt...

2018-01-03 09:46:00 468

转载 全捕捉

#前面了解了很多异常,是否所有异常都可以捕捉的呢?其实并非如此。如下示例: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #异常9.7 4 5 def model_exception(x,y): 6 try: 7 a=x/y 8 b=name 9 ex...

2018-01-02 09:01:00 126

转载 捕捉对象

#如果希望在except子句中访问异常对象本身,也就是看到一个异常对象真正的异常信息,而不是输出自己定义的异常信息,可以使用as e的形式,我们称之为捕捉对象。示例如下: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #异常9.6 4 5 def model_exception(x,y): 6 try:...

2017-12-29 10:29:00 66

转载 使用一个块捕捉多个异常

#前面了解了一个try语句对应多个except子句,若需要一个try对应一个except子句,同时捕捉一个以上异常,能实现吗?先来看示例: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #异常_2 4 5 def model_exception(x,y): 6 try: 7 b=name...

2017-12-26 08:55:00 197

转载 抛出异常

#Python使用raise语句抛出一个指定异常。我们可以使用类(exception的子类)或实例参数调用raise语句引发异常。使用类时程序会自动创建实例。#例如: 1 >>> raise Exception 2 Traceback (most recent call last): 3 File "<pyshell#0>", l...

2017-12-25 09:20:00 95

转载 异常处理

#出现异常怎办?#就如我们使用的工具出了点小毛病,我们可以想办法修理好它。程序也是一样,前辈们经过不断积累和思考,创造了不少好方法处理程序中的异常,最简单的是使用try语句处理。#try语句的基本形式为try/except。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在发生异常时结束程序,只需在try语句块中捕获异常即...

2017-12-21 14:39:00 58

转载 类的专有方法

#前面已经了解了类的访问权限、私有变量和私有方法,除了自定义私有变量和方法外,Python类还可以定义专有方法。专有方法是在特殊情况下或使用特殊语法时由Python调用的,而不是像普通方法一样在代码中直接调用。#看到形如__xxx__的变量或函数名就要注意,这在Python中是有特殊用途的。#__init__我们知道怎么用了,Python的class中有许多这种有特殊用途的函数,...

2017-12-19 14:23:00 278

转载 获取对象信息

#当我们调用方法时可能需要传递一个参数,这个参数类型我们知道,但是对于接收参数的方法,就不一定知道是什么参数类型了。我们该如何得知参数类型呢? #Python为我们提供了以下3种获取对象类型的方法。1、使用type()函数 #前面已经学过type()函数的使用,基本类型都可以用type()判断,例如:1 >>> t...

2017-12-13 22:30:00 133

转载 多重继承

#前面讲的是单继承,Python还支持多重继承。多重继承的类定义如下:1 class DerivedClassName(Base1,Base2,Base3):2 <statement-1>3 .4 .5 . 6 <statement-N>#可...

2017-12-12 13:51:00 96

转载 类的封装

#前面了解了Python对象中两个重点:继承和多态,接下来了解第三个重点:多态#封装食全局作用域中其他区域隐藏多余信息的原则。看起来有些像多态,使用对象而不用知道内部细节。他们都是抽象原则,都会帮忙处理程序组件而不用过多关系细节,就像函数一样。#封装并不等于多态。多态可以让用户对不知道类(或者对象类型)的对象进行方法调用,而封装可以不用关心对象是如何构建的,直接使用即可。#如...

2017-12-10 15:10:00 160

转载 类的多态

#我们前面了解了继承,继承可以帮助我们重复使用代码。但对于继承中的示例,无论是Dog还是Cat,调用父类的run()方法时显示的都是Animal is running.,如果想让结果显示为Dog is running.和Cat is running.,该如果处理呢?#我们对Dog和Cat做如下改进: 1 #! /usr/bin/python3 2 #-*-coding...

2017-11-30 09:10:00 115

转载 类的继承

#面向对象编程带来的好处之一是代码的重用,实现代码重用的方法之一是通过继承机制。继承完全可以理解成类之间类型和子类型的关系。 #在面向对象程序设计中,当我们定义一个class时,可以从某个现有的class继承,定义的新class称为子类(Subclass),而被继承的class称为基类、父类或者超类(Base class、Super class)。...

2017-11-29 21:42:00 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除