Python
文章平均质量分 51
syztoo
syztoo
展开
-
用filter求素数
not_divisible(n),其实是一个外壳,它返回一个函数select,真正作用于序列的是函数select。那么序列里面的对象,自然是传递给select的参数x。总结,当筛选函数有两个变量需要传递时,可以套一层外壳。那在筛选过滤时,序列里面的对象是传递给哪一个参数?用Python来实现这个算法,可以先构造一个从。注意这是一个生成器,并且是一个无限序列。而上面定义的筛选函数,有两个参数n和x。不断筛下去,就可以得到所有的素数。不断产生筛选后的新的序列。,它一定是素数,然后用。,它一定是素数,然后用。原创 2023-12-06 18:12:09 · 702 阅读 · 0 评论 -
Python空值None的意义
举个例子,我们常使用 print() 函数输出数据,其实该函数的返回值就是 None。因为它的功能是在屏幕上显示文本,根本不需要返回任何值,所以 print() 就返回 None。需要注意的是,None 是 NoneType 数据类型的唯一值,也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。这里的空值并不代表空对象,即 None 和 [] 以及 "" 不同。原创 2023-09-18 14:37:50 · 207 阅读 · 0 评论 -
Python 实现类的计数
类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同。实现类的计数功能,实例化一个实例,数值加1。>>> class Student.原创 2020-09-29 11:00:05 · 1054 阅读 · 0 评论 -
Python 元类 type 和 metaclass
type()动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个Hello的class,就写一个hello.py模块:class Hello(object): def hello(self, name='world'): print('Hello, %s.' % name)当Python解释器载入...转载 2019-12-13 11:31:43 · 199 阅读 · 0 评论 -
Python 并发编程之 yield from 语法
本文目录为什么要使用协程 yield from 的用法详解 为什么要使用 yield from为什么要使用协程举个例子,假如我们做一个爬虫,要爬取多个网页。这里简单举例,爬取两个网页( 两个 spider 函数 ):第一步,获取HTML,然后再对 HTML 进行解析并取得我们感兴趣的数据。代码结构精简如下:def spider_01(url...转载 2019-12-03 16:11:28 · 199 阅读 · 0 评论 -
Python pop3 收取邮件
SMTP 用于发送邮件,POP3 用于收取邮件。收取邮件就是编写一个 MUA 作为客户端,从 MDA 把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是 POP 协议,目前版本号是3,俗称 POP3。Python内置一个 poplib 模块,实现了POP3协议,可以直接用来收邮件。注意到 POP3 协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和 SMTP 协议...转载 2019-11-29 17:31:49 · 808 阅读 · 0 评论 -
Python smtp 发送邮件
SMTP 是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件。首先,我们来构造一个最简单的纯文本邮件:from email.mime.text import MIMETextmsg...转载 2019-11-29 16:02:45 · 764 阅读 · 0 评论 -
Python 分布式进程
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个进程中,依靠网络通信。由于managers模块...转载 2019-11-21 15:01:40 · 119 阅读 · 0 评论 -
Python 枚举类型
起步枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。在没有专门提供枚举类型的时候我们是怎么做呢,一般就通过字典或类来实现:Color = { 'RED' : 1, 'GREEN': 2, 'BLUE' : 3,}class Color: RED = 1 GREEN = 2 ...转载 2019-11-19 15:31:41 · 110 阅读 · 1 评论 -
Python 生成器
要创建一个generator,有很多种方法。一、列表生成式第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:>>> L = [x * x for x in range(10)]>>> L[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]>>> g = (x * ...转载 2019-11-14 16:42:44 · 138 阅读 · 0 评论 -
Python 函数的参数
一、位置参数def power(x): return x * x对于power(x)函数,参数x就是一个位置参数。二、默认参数def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s参数 n 就是一个默认参数,默认...转载 2019-11-14 14:06:31 · 177 阅读 · 0 评论 -
Python multiprocessing、pool
multiprocessing由于 Windows 没有 fork 调用,multiprocessing 模块提供了一个 Process 类来提供实现多进程的方式;import osfrom multiprocessing import Processx1, x2 = 3, 7def run_add(x1, x2): print("this is child proce...原创 2019-07-25 18:26:59 · 661 阅读 · 0 评论 -
Python 协程
了解协程之前,先简单介绍下进程和线程。进程是什么呢?直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源、数据资源、独立的内存空间。线程又是什么呢?线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程拥有自己的栈空间。对操作系统来说,线...原创 2019-07-24 18:31:31 · 110 阅读 · 0 评论 -
Python 正则表达式
常用匹配模式\w 匹配字母数字及下划线\W 匹配非字母数字及下划线\s 匹配任意空白字符,等价于[\t\n\r\f]\S 匹配任意非空字符\d 匹配任意数字\D 匹配任意非数字\A 匹配字符串开始\Z 匹配字符串结束,如果存在换行,只匹配换行前的结束字符串\z 匹配字符串结束\G ...原创 2019-07-17 11:37:18 · 86 阅读 · 0 评论 -
Python collections 模块
namedtuplenamedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。>>> from collections import namedtuple>>> Point = namedtuple('Point', ['x', 'y'])>>...原创 2019-07-19 10:10:06 · 89 阅读 · 0 评论 -
Python os模块使用
os 模块常用操作os.name #操作系统类型os.uname() #系统信息os.environ #环境变量os.path.abspath() #查看当前目录的绝对路径os.path.join(path1, path2) #合并路径os.path.split(path) #拆分路径os.path.splite...原创 2019-07-16 16:01:46 · 201 阅读 · 0 评论 -
Python 反斜杠问题
python 本身可以使用反斜杠 \ 来转义一些特殊字符,比如在字符串中加入引号的时候:>>> syztoo = 'it\'s a song'>>> syztoo"it's a song">>> print (syztoo)it's a song当然也可以转义反斜杠本身,比如:>>> file = 'C...原创 2019-05-31 00:06:20 · 2080 阅读 · 1 评论 -
Python while...else... 和 for...else...
Python 里面,有种奇怪的语法,else 可以和 while 循环或者 for 循环搭配使用。while...else 语法while 判断条件: 语句1....else: 语句2....for...else 语法for 遍历对象: 语句1....else: 语句2....这种奇怪的语法是说:当 whil...原创 2019-06-12 17:24:34 · 10401 阅读 · 0 评论 -
Python 递归
一个函数在其定义中调用自身的方法即为递归( recursion)。构成递归需要满足两个条件,第一个是子问题与父问题存在同样的处理逻辑,第二个就是要有递归出口—化简为非递归处理方式。在某些场景下,使用递归,不仅可以大大减少程序的代码量,而且问题也会变得极其简单。需要注意的是:每一次函数的调用都涉及到一个桢栈的入栈到出栈,同时,会涉及到分配内存空间,保存参数,返回地址和临时变量,而...原创 2019-06-11 17:30:04 · 255 阅读 · 1 评论 -
Python 返回函数之变量引用
题目:利用闭包返回一个计数器函数,每次调用它返回递增整数?def createCounter(): def counter(): pass return contnter# 测试:counterA = createCounter()print(counterA(), counterA(), counterA(), counterA(),...原创 2019-07-09 16:21:50 · 1012 阅读 · 0 评论 -
Python 闭包
高阶函数与闭包高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回; 如果返回的函数中,包含了原函数的参数或者变量,这种就叫做闭包; 返回的是函数不会被立即执行,再次调用被执行;>>> def count():... fs = []... for i in range(1, 4):... def f():... ...原创 2019-06-28 16:29:08 · 502 阅读 · 0 评论 -
Python datetime 模块
获取当前日期和时间:>>> from datetime import datetime>>> print(datetime.now())2019-07-18 15:16:55.283423获取指定日期和时间要指定某个日期和时间,我们直接用参数构造一个datetime:>>> from datetime import da...原创 2019-07-18 15:30:58 · 2060 阅读 · 0 评论 -
Python 定制类
1__str__() 和 __repr__()修改打印一个实例时的默认值。修改前:>>> class Student(object):... def __init__(self,name):... self.name = name... >>> s=Student('syztoo')>>> pr...原创 2019-07-12 11:25:18 · 116 阅读 · 0 评论 -
Centos 安装 Python3 环境
Centos7默认自带Python2.7,可安装Python3与Python2共存。[root@Python ~]# python -VPython 2.7.51.安装编译相关工具[root@Python ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@Python ~]...原创 2019-03-22 22:12:02 · 651 阅读 · 0 评论