Python入门笔记

Posted by

函数闭包、测试、进程和线程还有一些标准库的知识还没搞懂……

r''表示不转义

切片:变量[头下标:尾下标:步长]

在同一行中使用多条语句,语句之间使用分号分割

print遇到逗号输出一个空格,默认结束换行,用end=''改变结尾自动输出的字符。

二进制:0b100相当于4

八进制:0o100相当于64

十六进制:0x100相当于256

eval():计算在字符串中一个有效的Python表达式

str():将指定的对象转换成字符串形式,可以指定编码

chr():将整数转换成该编码对应的字符串(一个字符)

ord():将字符串(一个字符)转换成对应的编码(整数)

hex():整数转16进制字符串

oct():整数转8进制字符串

type()不会认为子类是一种父类类型

isinstance()会认为子类是一种父类类型

在交互模式中,最后被输出的表达式结果被赋值给变量_

math.exp(x):$e^x$

random.choice(seq):从序列的元素中随机挑选一个元素

random.randrange([start,] stop [,step]):从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为1

random.random():随机生成下一个实数,它在[0,1)范围内

random.seed([x]):改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed

random.shuffle(lst):将序列的所有元素随机排序

random.uniform(x, y):随机生成下一个实数,它在[x,y]范围内

math.hypot(x, y):$\sqrt{x^2+y^2}$

math.degrees(x):弧度转角度

math.radians(x):角度转弧度

Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。

序号方法及描述
1capitalize()将字符串的第一个字符转换为大写
2center(width, fillchar)返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3count(str, beg= 0,end=len(string))返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4bytes.decode(encoding="utf-8", errors="strict")Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5encode(encoding='UTF-8',errors='strict')以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
6endswith(suffix, beg=0, end=len(string))检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
7expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8find(str, beg=0, end=len(string))检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常.
10isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
11isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
12isdigit()如果字符串只包含数字则返回 True 否则返回 False..
13islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False
15isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
16istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False
17isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19len(string)返回字符串长度
20ljust(width[, fillchar])返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21lower()转换字符串中所有大写字符为小写.
22lstrip()截掉字符串左边的空格或指定字符。
23maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24max(str)返回字符串 str 中最大的字母。
25min(str)返回字符串 str 中最小的字母。
26replace(old, new [, max])将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
27rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找.
28rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.
29rjust(width,[, fillchar])返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30rstrip()删除字符串字符串末尾的空格.
31split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32splitlines([keepends])按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33startswith(substr, beg=0,end=len(string))检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34strip([chars])在字符串上执行 lstrip()和 rstrip()
35swapcase()将字符串中大写转换为小写,小写转换为大写
36title()返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37translate(table, deletechars="")根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38upper()转换字符串中的小写字母为大写
39zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0
40isdecimal()检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

list.index(obj):从列表中找出某个值第一个匹配项的索引位置

list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

创建空元组:tup1 = ()

radiansdict.copy():返回一个字典的浅复制

radiansdict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值

radiansdict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

radiansdict.update(dict2):把字典dict2的键/值对更新到dict里

popitem():随机返回并删除字典中的最后一对键和值

创建一个空字典dict1 = {}

创建一个空集合set1 = set()

如果从break退出循环,对应的else块不会执行

在 Python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

python 函数的参数传递:

  • 不可变类型:类似 C++ 的值传递,如 整数、字符串、元组
  • 可变类型:类似 C++ 的引用传递,如 列表,字典

可变参数*args,转化为tuple

关键字参数**kw,转化为dict

可变参数可以直接传入,也可以通过*解封list/tuple传入

关键字参数也可以通过**解封dict传入

命名的关键字参数:限制可以传入的参数名,使用*分隔,但是如果之前有可变参数,就不需要分隔符了

用collections模块的Iterable类型判断一个对象是否可迭代

enumerate(list)把一个list变成索引、元素对

在一个列表生成式中,for前面的if ... else是表达式,而for后面的if是过滤条件,不能带else

凡是可作用于for循环的对象都是Iterable类型;

凡是可作用于next()函数的对象都是(迭代器)Iterator类型,它们表示一个惰性计算的序列;

集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

在类中创建一个迭代器:

  • __iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。
  • __next__() 方法会返回下一个迭代器对象。
  • StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

列表生成式外如果是[]就是list,如果是()就是generator

在 Python 中,使用了 yield 的函数被称为生成器(generator)。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

调用一个生成器函数,返回的是一个迭代器对象。

匿名函数:lambda [arg1 [,arg2,.....argn]]:expression

同时遍历两个或更多序列时,用zip()组合

反向遍历序列,使用reversed()函数

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

reduce()把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

filter()也接收一个函数和一个序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。函数返回一个Iterator

sorted(iterable, key=None, reverse=False),key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。

f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

如果要改变文件当前的位置, 可以使用f.seek(offset, from_what)函数。

from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:

  • seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
  • seek(x,1) : 表示从当前位置往后移动x个字符
  • seek(-x,2):表示从文件的结尾往前移动x个字符

from_what 值为默认为0,即文件开头

pickle.dumps()方法把任意对象序列化成一个bytes,然后,就可以把这个bytes写入文件。或者用另一个方法pickle.dump()直接把对象序列化后写入一个file-like Object

当我们要把对象从磁盘读到内存时,可以先把内容读到一个bytes,然后用pickle.loads()方法反序列化出对象,也可以直接用pickle.load()方法从一个file-like Object中直接反序列化出对象

file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline([size])读取整行,包括 “\n” 字符

file.readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区

类的专有方法:

  • __init__: 构造函数,在生成对象时调用
  • __del__: 析构函数,释放对象时使用
  • __repr__: 打印,转换
  • __setitem__: 按照索引赋值
  • __getitem__: 按照索引获取值
  • __len__: 获得长度
  • __cmp__: 比较运算
  • __call__: 函数调用
  • __add__: 加运算
  • __sub__: 减运算
  • __mul__: 乘运算
  • __truediv__: 除运算
  • __mod__: 求余运算
  • __pow__: 乘方

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注