赞
踩
先看点常用但比较琐碎的
⭐基本操作演示:
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
⭐三个最常用的类:
- 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 #日历天数
⭐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() #出队
介绍:可以实现字符串的排列和组合
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)
介绍:主要用到双向队列
from collections import deque #双向队列
queue=deque()
#在两头插入元素的时候效率很高
#常用操作append,popleft(),pop()
⭐只能用于升序数列:
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()集合可以存储任意类型元素
##二维列表:列表中的元素是列表,本质:一维列表
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()集合其实就是数学中的集合
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 的非共同元素。
⭐代码演示:
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')的输出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。