python基础函数整理

操作篇

字符串操作:

len(s):统计字符串长度

ord(s):字符 =》ASCII

cha(s):ASCII =》字符

’ '.join(s):拼接字符串;

s[::-1]:反转字符串

s[a: b]:按下标a~b切割

s.split():切割字符串(默认空字符,会保存成列表); splitlines():按行切割

s.strip():去除两侧字符(默认空字符); lstrip():只去除左边的特定字符; rstrip():只去除右边的特定字符

s.count(i):计算 i 在字符串s中出现的次数

s.find(i):查找字符串,并返回 i 第一次出现的下标; rfind():反向查找字符串

s.index(i):查询元素返回 i 第一次出现的下标(若不在列表中则会报错,可以指定开始、结束范围)

s.replace(old, new, max):把old替换成new(新字符串),max指定最多替换次数

s.upper():所有小写转大写; lower():所有大写转小写;

s.swapcase():大小写互转; capitalize():字符串首字母转大写; title():每个单词首字母大写;

s.isupper():判断是否全是大写; islower():判断是否全是小写;

s.isalpha():判断是否只是字母

s.isdigit():判断是否只是数字

s.isdecimal():判断是否只包含十进制字符

s.startswith():判断是否以特定字符开头; endswith():判断是否以特定字符结尾

s.isalnum():判断是否只是字母或数字

isinstance(s, type):判断是否为指定类型

列表操作:

len():统计列表长度

’ ‘.join(lt):将列表拼接成字符串(按’ '拼接)

l.append(a):追加元素a到末尾

extend(a):将可迭代对象a的元素展开追加到列表末尾

for i, v in enumerate(lt)):遍历列表(可以同时获取元素及下标),可设置起始位置

insert(a, b):指定a下标位置插入元素b

index():查询元素返回第一次出现的下标(若不在列表中则会报错,可以指定开始、结束范围)

remove():删除指定值的元素(只删第一个)

pop():弹出指定下标的元素(默认最后一个)

count():统计元素出现的次数

clear():清空列表

copy():拷贝一个列表

lt[::-1]:逆序

reverse():逆序

sort():升序排序: sort(reverse=True):降序排序;

sorted():可以用于多种可迭代对象

collections(计数器与队列):
Counter

c = Counter(lt)

dict©:获取元素及出现次数(字典形式显示)

c.most_common(n):获取出现次数最多的元素及次数,指定获取前n个

deque

d = deque(lt) 注:列表函数同样用
d.append(a):从右侧添加元素a; d.appendleft(a):从左侧添加

d.remove(a):删除元素a

d.pop():从右侧弹出元素(不能指定下标); d.popleft():从左侧弹出元素

d.extend(lt2):从右侧扩充序列;d.extendleft(lt2):从左侧扩充序列

d.rotate(n):循环移动,n正右移n次,n负左移n次

itertools(排列组合):

it = itertools.permutations(lt, n):从可迭代对象lt中取出n个元素,所有的可能就是排列(有序),会重复

it = itertools.combinations(lt, n):组合,按lt中顺序排列,且不重复

it = itertools.product(lt, lt2, ltn):笛卡尔成绩,多个序列中的组合

it = itertools.product(lt, repeat=n):相等于n个lt,功能同上

for i in it:

​ print(i)

元组操作:

len():统计长度

index():获取指定元素的下标

count():统计指定元素出现的次数

max():最大值; min():最小值

集合操作:

add():添加元素

remove():删除元素(不存在会报错); discard():删除元素(不存在不会报错)

pop():随机删除并返回

clear():清空元素

s1 | s2:并集(所有元素)

s1 & s2:交集(相同元素)

s1 ^ s2:对称差集(不同元素)

s1 - s2:差集(s1有s2没有元素)

s1 <= s2:s1是否是s2的子集

s1 >= s2:s1是否是s2的父集

s1.union(s2):并集

s1.intersection(s2):交集

s1.intersection_update(s2):交集(会覆盖原来的集合)

s1.isdisjoint(s2):是否 没有 交集

s1.issubset(s2):s1是否是s2的子集

s1.issuperset(s2):s1是否是s2的父集(超集)

字典操作:

d[n]:获取n的值

d.get(n):获取n键的值,没有返回None,可指定默认值, 对原字典无修改

d.setdefault(): 无值时使用默认值,并将默认值写入原字典

keys():遍历字典,获取键

values():遍历字典,获取值

items():遍历字典,同时获取键和值

d.update():更新字典(存在覆盖,不存在添加)

del:删除元素; pop(n):删除并返回n

d.clear():清空元素

函数基础:

内置系统函数:

print():打印

input():输入

type():获取类型

len():统计元素个数

range():自动生成序列

enumerate():枚举可迭代对象,同时列出数据和数据下标

ord():字符转ASCII

chr():ASCII转字符

int():转为十进制

bin():十转二进制

oct():十转八进制

hex():十转十六进制

abs():求绝对值

max():最大值

min():最小值

sum():求和

pow():求幂

round():四舍五入

round(3.12356, n):小数后保留n位

内置数据结构(型转换):

不可变:int、float、tuple、str、bool;可变:set、list、dict

常用函数

os.system(‘cls’):清屏操作

os.system(‘calc’):计算器

print(os.environ[‘path’]):获取环境变量

** if ** else **:灵活使用

yield x:函数会返回yield后的内容,然后会停止在这里,用于生成器

iter():可将可迭代对象转换为迭代器

gliobal n:声明n是全局变量(可以是多个)

nonlocal n:声明n是外层的局部变量

isinstance(a, type):判断对象a是否是type类型的

lambda(匿名函数):

lambda 参数: 表达式; lambda x, y: x + y; lambda d: d[‘age’]

递归

return 表达式:递归

装饰器

@ 函数名:装饰器(不改变原来函数)

高级函数

map():根据指定函数对序列做出映射(函数,序列)

filter(function, iterable):过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表(函数,可迭代对象)

from functools impor reduce

reduce(function, sequence):对参数序列中的元素进行累积(函数, 序列)

模块函数(需要引入):

import xx:引入xx包

from xx import yy:只引入xx包里的yy类(可引多个类)

from xx import yy as zz:引入模块中的指定内容,并且起别名

from xx import *:模糊导入,导入该模块中__all__列表指定的内容

isinstance(a, type):判断对象a是否是type类型的

inspect:
isfunction

from inspect import isfunction

isfunction(n):判断标识符n是否是函数

collections:
Iterator,Iterable

from collections import Iterator, Iterable

isinsratance(lt, Iterator):判断lt是否是迭代器

isinsratance(lt, Iterable):判断lt是否是可迭代对象

数学模块

import math:

math.ceil(3.1):向上进一

math.floor(3.9):向下进一

math.sqrt(x)):返回数字x的平方根

math.radians(360):度转换为弧度

math.degrees(math.pi)):弧度转换为度

import sys

sys.argv:是一个列表,保存所有的命令行参数

import random:随机数

random.randint(a, b):生成指定a~b范围随机整数

random.random():生成0~1的随机小数

random.uniform(a,b):生成a~b的随机小数

random.randrange(a, b, n):生成a~b范围随机整数,可指定步幅n

random.choice(lt):从容器对象或字符串随机返回一个元素

random.sample(lt, 3):从容器对象返回指定个数元素的列表

random.choices(lt):从容器对象返回一个元素的列表,samlp函数个数为1的情况

random.shuffle(lt):将列表随机打乱

算术运算:

__add__、__radd__、__iadd__:加法

__sub__、__rsub__、__isub__:减法

__mul__、__rmul__、__imul__:乘法

__truediv__、__rtruediv__、__itruediv__:除法

__mod__、__rmod__、__imod__:求余

关系运算:

__gt__、__lt__、__eq__:大于、小于、等于

__ge__、__le__、__ne__:大于等于、小于等于、不等于

时间模块:

import time:

time.sleep(n) :睡眠指定n的秒数(可以是小数)

time.time():获取时间戳,(从1970-01-01 00:00:00到此刻的秒数)

time.localtime():将时间戳转换为时间日期对象(time.struct_time),(默认当前时间戳),包含时区

time.gmtime():将时间戳转换为 time.struct_time 对象,不带时区

time.mktime():根据年月日等信息创建时间戳

time.timezone():7+0时区与当前系统时区相差的秒数

%Y:年(4位); %y:年(2位); %m:月; %d:日; %D:月/日/年
%H:时; %M:分; %S:秒; %w:星期; %W:本周是今年的第几周

t1 = time.struct_time

time.strftime(’%D’, t1):格式化显示,对 time.struct_time 对象进行

import calendar:

calendar(y,w=2, l=1, c=6, m=3):返回y年的日历,后边是默认格式

calendar.month(y, m):返回y年m月的日历

calendar.isleap(y):判断y年是否是 闰年

calendar.leapdays(x, y):两个x和y年份之间的闰年数量,区间:[起始, 结束]

datetime
date

from datetime import date

import time

date(y, m, d):创建对象(年-月-日)

date.today():创建对象(今天的年月日)

date.fromtimestamp(time.time()):用时间戳创建对象(今天的年月日)

d1 = date.today():d1是对象

d1.isocalendar():日历显示,(年, 第几周, 星期几)

d1.isoweekday():获取星期,标准格式1~7

d1.weekday():获取星期,格式0~6

d1.year, d1.month, d1.day:提取单独的年月日

d1.timetuple():转换为time.struct_time对象

d1.isoformat():标准格式显示(y-m-d)

d1.strftime(’%Y/%m/%d’):格式化显示

time

from datetime import time

time(h,m,s):创建对象(默认00:00:00)

t = time()

t.hour, t,minute, t.second:单独获取时、分、秒

datetime

from datetime import datetime

import time

datetime(y, m, d, H, M, S):创建对象(年-月-日 时:分:秒)

datetime.now():当前时间,带时区

datetime.utcnow():当前时间,不带时区

datetime.fromtimestamp(time,time()):把时间戳转换为对象

dt = datetime.datetime.now()

dt.date():提取日期

dt.time():提取时间

dt.timestamp():转换成时间戳

dt.strftime(’%j’):转换成当年的第几天

dt.strftime(’%Y/%m/%d %H/%M/%S’):格式化显示

timedelta

from datetime import timedelta, datetime

td = timedelta(seconds=3600):时间差

td.days:提取天数

td.seconds:提取秒数(天以外的秒数)

td.total_seconds():总共的秒数

文件操作:

文件管理:

open(file, mode):打开文件, mode打开模式

close(file):关闭文件

with:操作文件后,保证文件关闭

r:只读(不存在报错); w:只写(不存在创建,存在清空); a:追加(不存在创建,存在不清空)

r+:r强化版(可以读写); w+:w强化版(可以读写); a+:a强化版(可以读写)

readbble(file):判断文件是否可读

writable(file):判断文件是否可写

read(size):读取指定size长度内容,默认读全部

readline():读取整行内容,包括’\n’字符

write():写操作

tell(file):获取文件操作位置

remove(file):删除文件

shutil:

shutil.copy(old,new):拷贝文件(old只能是文件,new可以是文件可以是目录)

shutil.copyfile(old,new):拷贝文件,只能是文件

shutil.copytree(old,new):拷贝目录,只能时目录,且new不能存在

os.rmdir(‘test’):删除空目录

shutil.rmtree():删除目录(空目录,有内容都可以删)

os.rename(old,new):重命名目录(文件)

shutil.move(old,new):移动目录(文件)

bytes:

encode(‘utf-8’):编码

decode(‘utf-8’):解码

目录管理
os 模块

import os

os.name:判断正在使用的平台 (windows 返回 ‘nt’; Linux 返回’posix’)

os.system(cls):清屏

os.system(calc):调出计算器

os.environ[path]:获取环境变量

os.getenv(pathxx):从环境中取字符串,获取环境变量的值

os.getpid():获取当前进程id号

os.getpid():获取当前进程的父进程id号

os.getcwd():查看当前目录

os.mkdir(path):新建目录

os.makedirs(a/b/c):创建多级目录(可创建中间目录)

os.rmdir(path):删除空目录

os.removedirs(path):删除多层目录

os.remove(file):删除文件

os.rename(test, test2):重命名文件(目录)

os.stat(file):查看文件信息

os.listdir(path):遍历目录,返回指定路径下的文件和文件夹列表

os.getcwd():查看当前工作目录

os.listdir(os.getcwd()):查看指定文件内容

os.walk(‘path’):生成目录树下的所有文件名

os.chdir():改变目录

os.path模块:

import os

os.path.join(path, file):目录拼接

os.path.dirname(path):去掉文件名,返回目录路径

os.path.basename(path):去掉目录路径,返回文件名

os.path.split(path):切割路径和文件名; dir, file = os.path.split(path)

os.path.splitext(path)):切割路径和后缀

os.path.exists(file):判断文件(目录)是否存在

os.path.isdir(path):是否是目录

os.path.isfile(path):是否是文件

os.path.isabs(path):是否是绝对路径

os.path.abspath(path):转换为绝对路径

os.path.getsize(file):获取文件大小(只适用于文件,不适用目录)

面向对象

class 类名::类的定义

self.:表示当前对象,就是调用该方法的对象

__str__(self):打印对象时会触发,str方法转换时会触发,打印对象时会打印该方法的返回值

__init__:构造方法,创建对象时会触发,对对象的属性进行初始化设置

__del__:析构方法,当对象释放时会触发

__setattr__:添加或设置属性时会自动触发

__getattr__:获取指定的属性时会自动触发

__delattr__:销毁对象的指定属性时会自动触发

__setitem__:把对象当作字典,添加或设置属性时会自动触发

__getitem__:把对象当作字典,根据键获取值时自动触发

__delitem__:把对象当作字典,删除指定属性时自动触发

__call__:把对象当作函数调用,该方法会自动触发

__repr__:返回对象的字符串表示形式,使用repr函数处理时会自动触发

class B(A):B继承A

class C(A, B):C同时继承A和B

__:前面加俩下划线定义私有方法

@classmethod:装饰器,创建对外的简易接口

@staticmethod:装饰器,静态方法中用到

@property:专门保护特有的属性

@abstractmethod:定义抽象方法,规定接口

repr(d):返回对象的字符串显示; eval®:执行有效的python代码字符串

深浅拷贝:

import copy

copy.copy(lt):浅拷贝,只拷贝对象本身,里面的元素只会增加一个引用;也可以用lt.copy()

copy.deepcopy(lt):深拷贝,拷贝对象本身,对象中的元素也进行拷贝

print(lt is lt2):判断是否是同一个对象的多个引用

序列化:

import pickle

pickle.dumps():序列化,会将对象转换为bytes

pickle.loads():反序列化,从bytes中解析出对象

异常处理

try:

except Exception as e::出现异常时执行

else::没有异常时会执行

finally::有没有异常都会执行

raise Exception(‘手动抛出的异常’)

json

import json

json.dumps():将字典转换为JSON字符串

json.loads():将JSON字符串转换为字典

from urllib.parse import urlencode

urlencode(d):将字典进行URL编码

正则表达式

相关函数

import re

s = “www.findlp com”

p = ".([a-z]+) "

re.compile§:创建正则表达式对象,可以让创建正则对象和内容匹配分开操作

re.match(p, s):从开头进行匹配,找到返回对象结果,没有返回None

re.search(p, s):从任意位置匹配,作用同上

re.findall(p, s):全部匹配,返回所有匹配到的结果列表,没有则返回空列表,添加 () 后,结果只显示 () 匹配的内容

.span():返回匹配内容的位置

.group():返回匹配内容、

.groups():返回所有组的信息

.groupdict():返回分组的字典,键是组的名字,值是组的内容

正则语法
单个字符

[abc]:abc的任意一个字符

[0-9]:任意数字字符

[a-zA-Z]:任意字母

[^0-9]:非数字字符

. :除’\n’以外的任意字符

单个字符

‘\d’:匹配数字字符,等价[0-9]

‘\D’:匹配非数字字符

‘\w’:匹配字(数字、字母、下划线、汉字)

‘\W’:匹配非字(< >|、)

‘\s’:匹配空白字符(\n, \r, \t、空格)

‘\S’:匹配非空白字符

‘\b’:匹配词边界(开头、结尾、空格、标点)

‘\B’:匹配非词边界

次数限定

*:匹配任意次

+:匹配最少一次

?:匹配零次或一次,非贪婪匹配

?: :非匹配获取,匹配冒号后的内容,但不获取匹配结果,不进行存储供以后使用

{m}:指定m次

{m,n}:指定m~n次

{m,}:最少m次

{,m}最多m次

边界限定

^:以指定内容开头

$:以指定内容结尾

分组
:固定匹配

<[a-z]+></[a-z]+>:动态匹配:匹配多次嵌套的标签

<[a-z]+)></(\1)>:无名分组:\1、\2分别表示前面的第一组、第二组匹配的内容

(?P[a-z]+) ;?P=one:给标签起名;相对应

匹配模式

re.I :表示忽略大小写

re.M :多行处理(默认会把字符串当作一行处理)

re.S :单行处理,是.可以匹配任意(忽略\n)

字符替换

re.sub(“old_str”, “new_str”, text, 2) :最多替换2次,默认全部

图片处理

from PIL import Image, ImageDraw, ImageFont

img = Image.open(fp, mode=“r”):打开图片(图片名.要带后缀)

img.save():保存图片(指定文件名.要带后缀)

img.show():查看图片

Image.new(mode, size, color=0):新建图片(‘RGB’, 尺寸, 颜色)

img.thumbnail(size):修改尺寸,在原图修改

img.resize(size):修改尺寸,生成新的图片

draw = ImageDraw.Draw(img):创建画笔

font = ImageFont.truetype(font, size=10):创建字体

draw.point(xy, fill):画点,一个像素(位置,颜色)

draw.line(xy, fill, width=0):画线(位置*n,颜色,宽度)

draw.text(xy, text, fill, font):画字(位置,字,颜色,字体)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值