随笔分类 - Python
摘要:安装 快捷安装 源码安装 注意: Zsh:修改 文件而不是 。 Ubuntu、Fedora:修改 文件而不是 。 使用 安装需要的python版本: 一般有一个2.7,一个3.8就够了。 如果不确定哪些版本支持,可以查看pyenv支持安装的Python版本有哪些: 使用指定版本Python: 使用
阅读全文
摘要:本文将介绍python里常用的模块。如未特殊说明,所有示例均以python3.4为例: 网络请求 urllib urllib提供了一系列用于操作URL的功能。通过urllib我们可以很方便的抓取网页内容。 抓取网页内容 抓取百度搜索图片 python2.7的用户需要把 替换成 。 批量下载图片 模拟
阅读全文
摘要:在同步IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。 如果IO请求需要大量时间执行的话,异步IO方式可以显著提高效率,因为在线程等待的这段时间
阅读全文
摘要:发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 Python对SMTP支持有 和`email email smtplib`负责发送邮件。 发送简单邮件 下面是最简单的发邮件的例子: 注意默认 和`msg['To'] msg['
阅读全文
摘要:HTTP格式 HTTP协议是基于TCP和IP协议的。HTTP协议是一种文本协议。 每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的。 HTTP请求格式: GET: POST: Header部分每行用 换行,每行里键名和键值之间以 分割,注意冒
阅读全文
摘要:TCP编程 Client 创建一个基于TCP连接的Socket: 输出: 代码说明: 1、创建socket连接的时候使用 指定使用IPv4协议,如果要用更先进的IPv6,就指定为 。`SOCK_STREAM`指定使用面向流的TCP协议。 2、建立连接的 接受一个tuple,包含地址和端口号。 3、发
阅读全文
摘要:线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。 进程 fork调用 通过 系统调用,就可以生成一个子进程。 下面先了解下关于 的相关知识: Unix/Linux操作系统提供了一个 系统调用,它非常特殊。普通的函数调
阅读全文
摘要:实际开发中,我们会经常用到数据库。 Python里对数据库的操作API都很统一。 SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。 Python内置了
阅读全文
摘要:正则表达式是一种描述性的语言,用来匹配字符串。凡是符合规则的字符串,我们认为就是匹配了。 正则表达式并非Python独有的,它与语言无关。很多语言都支持正则表达式。 我们经常用正则表达式来匹配电子邮件、手机号码、url等等。 来看一个简单的正则表达式,用于匹配手机号码: 表示匹配以1开头,第二位是3
阅读全文
摘要:方法预览: 获取当前时间 输出: 用于格式化日期对象datetime。另外一个方法 则负责把一个字符串str转为 对象: 输出: 获取时间戳 输出: 小数位表示毫秒数。 自定义时间转换为时间戳: 输出: 注意:timestamp的值是与时区无关的。datetime是有时区的。 下面演示如何把time
阅读全文
摘要:把变量从内存中变成可存储或传输的过程称之为 ,在Python中叫 ,在其他语言中也被称之为serialization,marshalling,flattening等等。 pickle pickle是Python语言特定的序列化模块,序列化的内容只能是Python才能反序列化。 示例: 输出: 反序列
阅读全文
摘要:Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文
阅读全文
摘要:异常捕获 语法格式: except用来捕获异常类型,常见的有ValueError、ZeroDivisionError,都继承基类BaseException。如果没有错误发生,则执行else。不管有没有错误发生,都会执行finally。 注意的是,只要一处except的捕获到了,不会继续捕获。 里的
阅读全文
摘要:多重继承 Python里允许多重继承,即一个类可以同时继承多个类: 这样, 同时拥有 、`Runnable`的属性和方法。 __slots__限制实例的属性 由于类的实例可以动态绑定新的属性,有时候我们不希望这样,可以通过 进行限制: 然后,我们试试: 由于 没有被放到 中,所以不能绑定score属
阅读全文
摘要:面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 本节对于面向对象的概念不做展开说明。本节主要内容是Python里如何使用面向对象编程。 分下面几部分: 1、类的格式 2、类的
阅读全文
摘要:模块让我们能够有逻辑地组织Python代码段。把相关的代码分配到一个 模块里能让我们的代码更好用,更易懂。 导入模块 Python使用 语句导入模块。语法: 示例: 第1行和第2行:标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本
阅读全文
摘要:函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。 高阶函数 Python支持 高阶函数(Higher order function) 。 什么是高阶函数呢?把函数作为参数传入,这样的函数称为高阶函数。 高阶函数的特点: 1、变量可以指向函数 这个例子告诉我们: 是
阅读全文
摘要:迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。 Python里使用 来迭代。 常用可迭代对象有list、tuple、dict、字符串等。示例: list: 输出: 上面的for循环里,同时引用了两个变量,在P
阅读全文
摘要:Python里提供了切片(Slice)操作符获取列表里的元素。 示例: 表示,从索引0开始取,直到索引2为止,但不包括索引2。 如果第一个索引是0,还可以省略: 也可以倒数取元素: 表示倒数第2个开始直到结束。记住倒数第一个元素的索引是 1。 如果不指定开始和结束,只写 就可以原样复制一个list:
阅读全文
摘要:Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。我们已经知道Python提供了许多内建函数,比如 。但我们也可以自己创建函数,这被叫做用户自定义函数。 定义一个函数 我们可以定义一个由自己想要功能的函数,以下是简单的规
阅读全文