使用方法,比如安装pandas
模块:
pip install -i http://pypi.douban.com/simple/pandas
常用镜像来源:
import sys
sys.getsizeof('abc')
模块的__version__
的属性可以查看模块版本号
import numpy as np
import pandas as pd
# 查看模块版本号
np.__version__
import sys
sys.getsizeof(obj) # 单位是byte
pip3 install -U 模块名
,比如pip3 install -U pandas
pip3 install --upgrade matplotlib
更新第三方库
查看帮助文档help
函数,比如:help(pandas.DataFrame)
查看类的属性或方法dir
函数,比如:dir(pandas)
在可以在对象后面带上?回车,这是python的一个特性,比如pandas.DataFrame?
warnings.filterwarnings('ignore')
import 导入模块后,修改了模块,保存,再import导入是不生效的。导入内存中已经有这个模块了,无法再次导入。
需要使用from imp import reload
reload('module')
# 使用reload重新导入模块,修改的模块才会生效。
模块的__file__
属性可查看模块存放路径
import os
os.__file__
pip
安装:pip3 install restrying
python setup.py install
pip3 install wheel
pip3 install ***.whl
help('modules')
如果在同一文件夹下:直接导入
import hello
hello.hello()
如果不在同一文件夹下:
sys.path是一个路径列表,import导入时,会从遍历列表路径寻找模块。
通过import sys
,sys.path.append('父目录的路径')
来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。
sys.path可以查看系统环境位置,一般site-packages这个位置专门用于存放模块。
py会自动查找当前目录下和sys添加目录下的模块。
if __name__ == '__main__'
: 运行主程序
导入模块包(package):
死循环中断:快捷键:ctrl+ c
程序停止:quit()
exit()
copy模块: import copy
深拷贝:copy.deepcopy
浅拷贝:copy.copy
将字符串解析成表达式运算并返回其值。
比如eval("{'id':123,'name':'alice'}")
会返回一个字典对象
d = {'score':{'match':80,'english':90}}
try:
exec("d['score']['match']=80")
except Exception as e:
print(e)
locals()['aa'] = 1 #使用python内置函数:locals()
aa
#out:1
locals()['aa']
#out:1
#或者也可以用字典
d = {}
d['aa'] = 1
d['aa']
#1,相对用字典可能灵活点。
map:映射函数,filter:筛选函数;两者可自定义函数实现元素映射、筛选
ls = list(range(10))
# 两个函数:py2返回的是列表,py3返回的是迭代器
filt = filter(lambda x: x % 2 == 0,ls)
mp = map(lambda x: x + 1,ls)
抛出异常意味着结束程序,同事打印指定异常日志
raise
if [condition]:
raise '异常显示内容'
当一个对象没有任何引用,python自动垃圾回收-内存释放
import sys
class A():
def __init__(self):
pass
def __del__(self):
print('执行__del__方法')
m = A()
m1 = m
m2 = m
print(sys.getrefcount(m)) # 加上sys本身调用,m有四层引用
Unicode 是字符集
Unicode字符集的作用就是给每一个字符分配一个唯一的ID(又称码位)。
编码规则是将码位转换为字节序列的规则。
汉字unicode编码范围:[\u4e00-\u9fa5]
,可正则表达式筛选中文汉字
创建Unicode字符:s = u'unicode 字符串'
前面加u
要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
f.read()
遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
decode:字符串解码,encoding:字符串编码
bytes-(decode())-str(unicode)-(encode())-bytes
字符串常用编码:utf_8,gb2312,gbk,cp936,gb18030
当open文件出错时,设置参数打卡方式为二进制:'rb'
,再通过第三方库chardet
来判断内容编码格式。
示例:
import chardet
file = open('aa.txt','rb')
f = file.read()
chardet.detect(f) #判断f内容编码,结果confidence时预估为结果编码的概率。
isinstance函数可用来判断数据类型。
第二个参数:float、int、dict等
from types import MethodType,FunctionType
isinstance(2,float) #False
isinstance((2,3),(str,list,tuple)) #支持多种类型列表
isinstance(m.test,MethodType) # 判断‘m.test’是不方法
#判断对象是否是这个类或者子类的对象
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
class Son(Foo):
pass
obj=Son("xiaoming",18)
print(isinstance(obj,Foo))
# 执行结果:True
#issubclass用来判断一个类是否是某个类的子类,返回的是一个bool类型数据
class Foo:
def __init__(self,name,age):
self.name=name
self.age=age
class Son(Foo):
pass
obj=Son("xiaoming",18)
print(issubclass(Son,Foo))
通过装饰器方式装饰