您现在的位置是:首页 > 技术教程 正文

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

admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机)

蓝桥杯必会模块(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

日期函数模块(常用)

三个最常用的类:

  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 #日历天数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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
  • 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()集合

介绍: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遍历
  • 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()集合

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

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜