python常用基础笔记

国内镜像

使用方法,比如安装pandas模块:
pip install -i http://pypi.douban.com/simple/pandas

常用镜像来源:

  1. 清华大学开源镜像站 https://mirrors.tuna.tsinghua.edu.cn/
  2. 网易开源镜像站 http://mirrors.163.com/
  3. 阿里巴巴开源镜像站 https://opsx.alibaba.com/mirror/
  4. 网易开源镜像站http://mirrors.163.com/
  5. 搜狐镜像站(PHP,python)http://mirrors.sohu.com/
  6. 淘宝镜像 https://npm.taobao.org/mirrors/
  7. 腾讯软件源 mirrors.cloud.tencent.com/
  8. 华为开源镜像站:mirrors.huaweicloud.com/
  9. 中国科技大学:mirrors.ustc.edu.cn/
  10. 北京交通大学:mirror.bjtu.edu.cn/cn/
  11. 上海交通大学:ftp.sjtu.edu.cn/
  12. 北京理工大学:mirror.bit.edu.cn/web/
  13. 浙江大学:http://mirrors.zju.edu.cn
  14. 北京理工大学:http://mirror.bit.edu.cn
  15. 华中科技大学:mirrors.hust.edu.cn/
  16. 豆瓣http://pypi.douban.com/simple/
  17. 华中理工大学http://pypi.hustunique.com/simple/
  18. 山东理工大学 http://pypi.sdutlinux.org/simple/
查看对象占用内存字节
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
  • ***.whl’安装方法
    pip3 install wheel
    pip3 install ***.whl
  • 查看已安装模块:help('modules')
导入自定义模块:

如果在同一文件夹下:直接导入
import hello
hello.hello()
如果不在同一文件夹下:
sys.path是一个路径列表,import导入时,会从遍历列表路径寻找模块。
通过import syssys.path.append('父目录的路径')来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。
sys.path可以查看系统环境位置,一般site-packages这个位置专门用于存放模块。
py会自动查找当前目录下和sys添加目录下的模块。
if __name__ == '__main__': 运行主程序

导入模块包(package):

  1. 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;
  2. 在文件夹中创建一个__init__.py的模块文件,内容可以为空,python定义用以识别这是一个包。
  3. 在用.方法导入包下面的模块。import package_name.module_name as another_name
程序中断快捷键

死循环中断:快捷键:ctrl+ c
程序停止:quit() exit()

深拷贝与浅拷贝

copy模块: import copy
深拷贝:copy.deepcopy
浅拷贝:copy.copy

eval函数:字符串解析成表达式

将字符串解析成表达式运算并返回其值。
比如eval("{'id':123,'name':'alice'}")会返回一个字典对象

exec函数:执行字符串语句
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函数

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,issubclass

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))
retry:重试

通过装饰器方式装饰
retry

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值