蓝桥杯必备模块及常用操作(python)
后台-插件-广告管理-内容页头部广告(手机) |
蓝桥杯必会模块(python):
- 字符类型模块
- 日期函数模块(常用)
- 优先级队列
- itertools模块
- collections模块
- Bisect模块
- List()集合
- set()集合
- Math模块
字符类型模块
先看点常用但比较琐碎的
⭐基本操作演示:
str(i).count("2") #count统计字符2的个数 s=input() #input() 返回的是字符串类型 s[0] #第一个元素 s[-1] #最后一个元素 ss=s+str(123) #+号是拼接 两个字符串类型 "".join(list) #把列表,队列等输出时,以字符串的形式输出- 1
- 2
- 3
- 4
- 5
- 6
⭐切片使用:[起点 :终点 :步长]
n=x[-n:]+x[:m-n] #后m个数提到字符串前面- 1
⭐进制转换函数:
十进制转二进制 bin函数():注意的是出来的是字符串,且有前缀’0b’,注意去除
十进制转十六进制 hex函数()):注意的是出来的是字符串,且有前缀’0x’,注意去除
十进制转八进制 oct函数()):注意的是出来的是字符串,且有前缀’0o’,注意去除
⭐字符串有关函数:
'aAWDdwd'.lower() 'DAWDAWa'.upper() s="12A" s[1].isalpha()#判断某个字符是否为字母 isalpha()函数: s[1].isdigit()#判断某个字符是否为数字 isdigit()函数: s.rfind() #查找字符最后一次出现的位置,没有则返回-1 #ord:把字符转化为对应的Ascii(ord('A')=65) #chr:把Ascii转化为对应的字符- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
⭐格式化输出数字:
"{:.0f}%".format() #四舍五入保留一位小数- 1
⭐enumerate函数:遍历下标和值,可以利用enumerate创建字典后,根据元素找下标
a = sorted(set(arr)) d = {} for i, v in enumerate(a, 1): d[v] = i- 1
- 2
- 3
- 4
日期函数模块(常用)
⭐三个最常用的类:
- datetime.date:表示日期的类,主要用于处理年、月、日;
- datetime.datetime:表示日期时间的类,date类和time类的综合使用,可以处理年、月、日、时、分、秒;
- datetime.timedelta:表示时间间隔,即两个时间点的间隔,主要用于做时间加减的
⭐基本操作演示:(要背的嘎嘎熟练)
from datetime import * #导包 year,month,day=1949,10,1 a=date(year,month,day) #1949-10-01 00:00:00 as=str(a).replace("-","")[:8] #date类型转字符串,19491001 ass=a.strftime("%Y%m%d%H%M%S") #date类型转字符串,aas=20121001000000 b=date(2012,10,1) while a<=b: a+=timedelta(1) #timedelta(1):1天(时间单位) print(cnt) date(year,month,day) #格式转换函数:数字格式→日期格式 a.weekday() #星期几函数,默认从星期一开始(下标为0) a.month #日历月份 a.day #日历天数- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
⭐strftime(format) 函数:接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定.
a=date(year,month,day) print(a.strftime("%j"))#strftime %j 输出某一年为一年中的第几天 包括区分闰年平年in%j 年内的一天(001-366)
%U 一年中的星期数(00-53)星期天为星期的开始,%W 一年中的星期数(00-53)星期一为星期的开始
%w 星期(0-6),星期天为星期的开始
- 1
- 2
⭐calendar模块:
1、判断是否为闰年 import calendar calendar.isleap(2022) #False 2、返回两年之间的闰年总数 calendar.leapdays(2000,2020)- 1
- 2
- 3
- 4
- 5
⭐日期合法化:
def judge(str):#传入字符串形式的日期 try: year= month= day= datetime.date(year,month,day)#如果日期不合法,会执行except下面那条语句,否则返回True except: return False return True- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
优先级队列
介绍:自动将队列中的结点从小到大排好序,速度比list列表通过排序模拟出来的快
⭐代码演示:
from queue import PriorityQueue #优先队列 a=list(map(int,input().split())) q=PriorityQueue() #创建数据结构 for i in a: q.put(i) #入队 q.qsize()!=1: #队列大小 a=q.get() #出队- 1
- 2
- 3
- 4
- 5
- 6
- 7
itertools模块
from itertools import * s=[1,2,3]#序列 #l为排列组合的长度:从序列里面取几个出来 l=2 for i in permutations(s,l): #排列 print(i) for i in combinations(s,l): #组合 print(i)介绍:可以实现字符串的排列和组合
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
collections模块
from collections import deque #双向队列 queue=deque() #在两头插入元素的时候效率很高 #常用操作append,popleft(),pop()介绍:主要用到双向队列
- 1
- 2
- 3
- 4
Bisect模块
⭐只能用于升序数列:
import bisect a=[0,1,2,3,3,3,5]#一段升序数组 bisect.bisect(a,b) #返回数组a中最后一个<=b的数字的下标+1 bisect.bisect_left(a,3) #返回数组中第一个等于3的下标 bisect.bisect_right(a,3) #返回数组中最后一个等于3的下标+1 #后两个如果不存在等于3的,和bisect.bisect等效- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
List()集合
##二维列表:列表中的元素是列表,本质:一维列表 a=[[1,2,3],[3,4,5]] list.append(lista)#lista当成一个元素加到前面的列表中 lista+listb #才是拼接 list.extend(str)#extend()里面是字符串时,每一个字符都是一个元素,里面要是list的话,则list当成一个元素加入 list.extend([1,2,3]) list.insert(index,obj) list.remove(obj)移除第一个匹配项 list.index(obj)找出某个值第一个匹配项的下标 list(seq)将字符串转为列表 zip(list1,list2)用zip封装三列表,在for遍历介绍:list()集合可以存储任意类型元素
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
⭐sort():字符串是不能排序的,排序或者要更改数值要转化成list()列表。
a=list(input()) #排序 a.sort(key = lambda x: (x[0],-x[1])) #,reverse=True 降序 ''' 其中key表示按第几个关键字排序,lambda x:后()中的元素表示了关键字的优先级,第一位表示最高的优先级,第二位次之。。。 其中下x[0]表示按第一个关键词的升序排列,-x[1]表示按第二个关键词的降序排列。 '''- 1
- 2
- 3
- 4
- 5
- 6
- 7
set()集合
x = set('runoob') y = set('google') #(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除 x & y # 交集set(['o']) x | y # 并集set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) x - y # 差集set(['r', 'b', 'u', 'n'] y ^ x #补集 #返回一个新的集合,包括集合 x 和 y 的非共同元素。介绍:set()集合其实就是数学中的集合
- 1
- 2
- 3
- 4
- 5
- 6
Math模块
⭐代码演示:
import math fabs(x):返回x的绝对值(float类型) factorial(x):取x阶乘的值 gcd(x,y):返回x和y的最大公约数 log(x[,base]):返回x的自然对数,默认以e为基数;base参数给定时,将x的对数返回给定的base floor(x):取小于等于x的最大整数值,如果x是一个整数,返回自身 ceil(x) :“向上取整”, 即小数部分直接舍去,并向正数部分进1 round() :“四舍五入”, 该函数返回的是一个四舍五入后的的整数 pow(x,y):返回x的y次方,即x**y sqrt(x):返回x的平方根 inf :浮点正无限。(对于负无穷大,请使用math.inf)等同于float(‘inf')的输出- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |