蓝桥杯必备模块及常用操作(python)

蓝桥杯必会模块(python):

  • 字符类型模块
  • 日期函数模块(常用)
  • 优先级队列
  • itertools模块
  • collections模块
  • Bisect模块
  • List()集合
  • set()集合
  • Math模块

蓝桥杯必备模块及常用操作(python)_第1张图片

字符类型模块

先看点常用但比较琐碎的

基本操作演示:

str(i).count("2") #count统计字符2的个数
s=input() #input() 返回的是字符串类型
s[0] #第一个元素
s[-1] #最后一个元素
ss=s+str(123) #+号是拼接 两个字符串类型
"".join(list) #把列表,队列等输出时,以字符串的形式输出

切片使用:[起点 :终点 :步长]

n=x[-n:]+x[:m-n] #后m个数提到字符串前面

进制转换函数:

十进制转二进制 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转化为对应的字符

格式化输出数字

"{:.0f}%".format() #四舍五入保留一位小数

enumerate函数:遍历下标和值,可以利用enumerate创建字典后,根据元素找下标

a = sorted(set(arr))
d = {}
for i, v in enumerate(a, 1):
    d[v] = i

日期函数模块(常用)

三个最常用的类:

  1. datetime.date:表示日期的类,主要用于处理年、月、日;
  2. datetime.datetime:表示日期时间的类,date类和time类的综合使用,可以处理年、月、日、时、分、秒;
  3. 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   #日历天数

strftime(format) 函数:接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定.

%j 年内的一天(001-366)

%U 一年中的星期数(00-53)星期天为星期的开始,%W 一年中的星期数(00-53)星期一为星期的开始

%w 星期(0-6),星期天为星期的开始

a=date(year,month,day)
print(a.strftime("%j"))#strftime %j 输出某一年为一年中的第几天 包括区分闰年平年in

calendar模块:

1、判断是否为闰年
import calendar
calendar.isleap(2022) #False
2、返回两年之间的闰年总数
calendar.leapdays(2000,2020)

日期合法化:

def judge(str):#传入字符串形式的日期
    try:
        year=
        month=
        day=
        datetime.date(year,month,day)#如果日期不合法,会执行except下面那条语句,否则返回True
    except:
        return False
    return True

优先级队列

介绍:自动将队列中的结点从小到大排好序,速度比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()              #出队  

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)

collections模块

介绍:主要用到双向队列

from collections import deque #双向队列
queue=deque()
#在两头插入元素的时候效率很高
#常用操作append,popleft(),pop()

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等效

List()集合

介绍: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遍历

sort():字符串是不能排序的,排序或者要更改数值要转化成list()列表。

a=list(input())
#排序
a.sort(key = lambda x: (x[0],-x[1])) #,reverse=True 降序
'''
其中key表示按第几个关键字排序,lambda x:后()中的元素表示了关键字的优先级,第一位表示最高的优先级,第二位次之。。。
其中下x[0]表示按第一个关键词的升序排列,-x[1]表示按第二个关键词的降序排列。
'''

set()集合

介绍: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 的非共同元素。

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')的输出

你可能感兴趣的:(python,蓝桥杯,python,竞赛)