Python
列表
array.append(str)insert(index,str)剩余的后移一位del array[i]array.pop(i)删除并返回第 i 个列表值array.remove(str)查找并删除匹配值array.sort()按字典顺序排序,反向需传递reverse=Truesorted(array)返回 sort 后的列表,但不改变原列表array.reverse()倒序排列列表len(array)返回列表长度- 负数 index 表示倒数
操作列表
列表
for x in array:遍历列表range(a,b,c)生成范围a<=x<b,步长为 c,省略为 1list(range(a,b))生成顺序列表min(array),max(array),sum(array)统计- 列表解析:
squares = [value**2 for value in range(1,11)] - 列表切片:
array[l:r]默认值为始末 - 列表复制要使用切片的方式,否则是将两个变量指向同一个列表
元组
- 不可变的列表,用圆括号来标识
字典
-
zidian={'key' : value, ····} -
用 key 作为索引
-
添加键值对
zidian['new_key']=new_value -
删除键值对
del zidian['key'] -
遍历字典
for k,v in zidian.keys(): -
遍历字典键
for k in zidian.keys(): -
获取字典的元素时,获取顺序是不可预测的
-
创建集合
set(zidian.values())每个元素皆不同 -
列表和字典可以互相嵌套
输入
mesage=input("information")读入为字符串
函数
-
def func() -
"""xianshi"""文档字符串(docstring)的注释 -
所有提供了默认值的必须放在参数列表最后
-
防止函数修改列表,传递切片
-
传递任意数量的实参(列表)
def make_pizza(*toppings): """打印顾客点的所有配料""" print(toppings) make_pizza('pepperoni') make_pizza('mushrooms', 'green peppers', 'extra cheese') -
使用任意数量的关键字实参(字典)
def build_profile(first, last, **user_info): """创建一个字典,其中包含我们知道的有关用户的一切""" profile = {} profile['first_name'] = first profile['last_name'] = last for key, value in user_info.items(): -
导入模块和函数
import pizza as p p.make_pizza() from pizza import make_pizza as mp mp() -
导入所有函数
from modle import *
类
创建和使用类
- 构造函数
__init__(self,val1,val2,···) - 形参
self类对象的引用,调用函数时不用传递它
继承
- 创建子类时,父类必须包含在当前文件中,且位于子类前面。定义子类时,必须在括号内指定父类的名称。方法 init()接受创建子类实例所需的信息
- super()是一个特殊函数,帮助 Python 将父类和子类关联起来,调用父类的方法 init()
- 子类中可以重写父类函数,对子类对象会调用子类重写方法
Python 标准库
-
记录字典添加顺序
from collection import OrderedDict new_dict=OrderedFict()
文件 I/O 与异常
文件读取
with open('txt_flie\file_name.txt') as file打开文件for line in file按行读取- 使用关键字 with 时, open()返回的文件对象只在 with 代码块内可用
- 方法 readlines()从文件中读取每一行
写入文件
-
写入空文件
with open(filename, 'w') as file_object: file_object.write("I love programming.")
打开文件时,可指定读取模式( ‘r’)、 写入模式( ‘w’)、 附加模式( ‘a’)或让你能够读取和写入文件的模式( ‘r+’)。 如果你省略了模式实参, Python 将以默认的只读模式打开文件, 如果指定的文件已经存在, Python 将在返回文件对象前清空该文件。 Python 只能将字符串写入文本文件
异常
-
try-except 代码块
try: content except errortype: else:
存储数据
- 模块 json
json.dump(array,flie)函数 json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。json.load(file)从 file 中读取信息
CHAPTER 1 解释器
-
启动解释器:
python -
退出解释器:
exit() or Ctrl+D(Unix) or Ctrl+Z(Windows) or quit() -
命令行参数:
python -c command [arg] ...,读取的命令行参数存储在 sys.argv 列表中:- 未给定命令行参数时,
sys.argv至少包含一个元素,sys.argv [0] 是脚本的名称’-’。 - 使用
-c command选项时,sys.argv[0]是’-c’。 - 使用
-m module选项时,sys.argv[0]是包含目录的模块名称。
- 未给定命令行参数时,
-
指定文件编码,第一行添加,默认为 utf-8
# -*- coding: encoding -*- -
pip 安装模块
pip install module
CHAPTER 2 python 速览
Num
/始终返回浮点数,//返回整数(向下取整)- 混合类型运算时,整数转换为浮点数
**乘方
Str
-
str:使用单引号或双引号,三引号可换行,使用
\可取消换行 -
r'...'原始字符串,不转义 -
使用
+连接字符串,*重复字符串 -
连续字符串自动连接, 只适用于字面量
text = ('Put several strings within parentheses ' 'to have them joined together.') -
字符串支持索引和切片,索引从 0 开始,负数从-1 开始
-
获取切片时,左闭右开:
s[1:3],省略时默认为 0 和最后一个,s[:i]+s[i:]等于 s -
索引越界会报错,切片不会,切片超出范围时,超出部分被忽略
-
字符串不可变,不能修改字符串的内容,只能创建新的字符串
-
格式化字符串 f-string
name = 'Alice' f'Hello, {name}!' -
字符串方法,方括号表示此参数可选
s.find(sub[, start[, end]]),查找子串,返回最小索引,未找到返回-1s.rfind(sub[, start[, end]]),从右边开始查找s.count(sub[, start[, end]]),返回子串出现次数,sub 为空时返回 1+最大索引,即字符串长度s.encode(encoding='utf-8', errors='strict'), 编码字符串s.endswith(suffix[, start[, end]]),判断是否以 suffix 结尾, 返回布尔值s.replace(old, new[, count]),替换子串,count 表示替换次数
List
-
列表是可变的,可以修改列表的内容
-
列表可以包含任意类型的对象,甚至可以包含其他列表
-
列表的简单赋值是引用,修改引用的内容会改变原列表
-
切片赋值是浅拷贝,浅拷贝创建一个新的对象,新对象中的元素是原对象中元素的引用。也就是说,新对象的第一层元素是复制的,但内部嵌套对象的引用仍然指向原始对象的内存地址。
-
深拷贝,
copy.deepcopy(),创建一个新的对象,递归地将原对象的内部对象复制到新对象中 -
为切片赋值时,会改变原列表
-
列表支持+和 操作,+连接列表, 重复列表
-
使用 in 和 not in 检查列表中是否存在元素
-
列表生成式:
[expr for var in iterable]squares = [x**2 for x in range(10)] -
列表方法
list.append(x),在列表末尾添加一个元素del list[i],删除指定位置的元素max,min,cmp,len,list,返回最大值,最小值,比较,长度,列表list.count(x),返回元素出现次数list.extend(iterable),在列表末尾一次性追加另一个序列的多个值list.index(x[, start[, end]]),返回第一个匹配元素的索引list.insert(i, x),在指定位置插入元素list.pop([i]),删除指定位置的元素并返回list.remove(x),删除第一个匹配元素, 匹配方向从左到右list.reverse(),反转列表list.sort(cmp=None, key=None, reverse=False),排序列表,cmp 为比较函数,key 为排序函数,reverse 为排序方向,默认升序