📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅Python领域优质创作者,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++) 💕
入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈 🌟🌟🌟✨✨✨
前言:
蓝桥杯前夕,真的是发现自己啥也没准备,考试就来啦!虽然说重在参与,但是只要是比赛咱们就得拼尽全力,为自己而战(虽然我是心疼我的三百块钱)~我整理了一些基础的东西,希望大家看到之后都能有所收获,相信自己一定可以发挥出自己的全部潜能!
一、输入
1.输入一个整数
n=int(input())
2.输入两个整数
split()默认是用空格隔开,如果需要其他符号隔开,可以在其中用引号引出我们想用的符号:.split(',')
A,B=map(int,input().split())
如果想用列表存储可以:
list1=list(map(int,input().split()))
二、创建
1.创建二维列表
a=[[] for i in range(n)] # [[], [], [], [], [], [], [], [], [], []]
2.创建全零列表
a = [0 for i in range(n)] # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
或者:
a = [0]*n # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
三、转化
1.进制转换
1.转十六进制:a=hex(2)0x2
2.转十进制:a = int(s,16)
这里的int(s,16)代表把16进制的s转化成10进制 这里特别要注意其中的 s必须为字符串,如果你在其中不加任何设定的输入数字的话,他会自动认定为整数,这样肯定会报错的,所以说你可以使用引号或者将前面加上str()去进行一个字符串的转化:
a = int(str(3),16) print(a) # 3
3.转八进制:a=oct(2)0o2
4.转二进制:a=bin(2)0b10
int('11',2) #将二进制'11'转化为十进制3 3 int('18',16) #将八进制'18'转化为十进制24 24 int('24',8) #将二进制'24'转化为十进制20 20
2.储存单位转换问题
二进位bit 字节1Byte=8个二进位 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
1Byte=8bit 1MB/s=8Mbps=8Mb/s 200*1024/8=25600KB/s=25MB/s
3.Ascii值转换
这里要注意ord()将字母转化为数字,chr()将数字转化为字母,‘a’是97 ‘A’是65 中间的90-96都是一些符号之类的东西。
AA=ord('a') # crd()函数就是用来返回单个字符的ascii值(0-255) # 97 BB=chr(65) # chr()函数是输入一个整数[0,255]返回其对应的ascii符号 # 'A'
四、规律公式
1.有(无)向图 边数问题
有向图: n个节点,最多n(n-1)条边,最少 n 条边 无向图:n个节点,最多 n(n-1)/2 条边,最少n-1 条边(没有自环和重边)
2.二叉树 叶子数问题
一棵包含有n个结点的二叉树,最多包含多少个叶结点? 叶节点:(n+1)/2
3.BFS问题
BFS基本模板:
graph={'A':['B','C'], 'B':['A','C'], 'C':['B','A'], 'D':['B','C','E'], 'E':['D','C','B'], 'F':['D']} def BFS(graph,s): queue=[] queue.append(s) seen=[] seen.append(s) while len(queue)>0: vertex=queue.pop(0) nodes=graph[vertex] for i in nodes: if i not in seen: queue.append(i) seen.append(i) print(vertex) BFS(graph,'E') >>> E D C B A
BFS最短路径问题:
graph={'A':['B','C'], 'B':['A','C','D'], 'C':['B','A','D'], 'D':['B','C','E','F'], 'E':['D','C'], 'F':['D']} def BFS(graph,s): queue=[] queue.append(s) seen=[] seen.append(s) parent={s:None} while len(queue)>0: vertex=queue.pop(0) nodes=graph[vertex] for w in nodes: if w not in seen: queue.append(w) seen.append(w) parent[w]=vertex #print(vertex) return parent parent=BFS(graph,'E') # E 终点 ''' #输出从B到E的最短路径 v='B' while v!=None: print(v) v=parent[v] ''' v='B' # B 起点 way=[] while v!=None: way.append(v) v=parent[v] print(way,len(way))
4.DFS问题
DFS基本模板:
graph={'A':['B','C'], 'B':['A','C','D'], 'C':['B','A','D','E'], 'D':['B','C','E','F'], 'E':['D','C'], 'F':['D']} def DFS(graph,s): stack=[] stack.append(s) seen=[] seen.append(s) while len(stack)>0: vertex=stack.pop() nodes=graph[vertex] for i in nodes: if i not in seen: stack.append(i) seen.append(i) print(vertex) DFS(graph,'E') >>> E C A B D F
五、必备函数
1.gcd()函数
gcd(最大公约数) 可以直接用来去求最大公约数,需要调用math库:
import math print(math.gcd(12,6)) # 6
而最小公倍数函数lcm()不可以直接用则可以通过gcd()函数间接求出来:a*b=gcd(a,b)*lcm(a,b)
,即:lcm(a,b) = a*b/gcd(a,b)
2. 阶乘函数factorial()
import math print(math.factorial(n)) # 求n的阶乘大小
3.排列permutations+组合combinations函数
总结一下我们数学中常说的排列组合问题: 1.组合:itertools.combinations()用法:
for j in (itertools.combinations('abcd', 3)): print(j) print(''.join(j)) # ('a', 'b', 'c') # ('a', 'b', 'd') # ('a', 'c', 'd') # ('b', 'c', 'd') # abc # abd # acd # bcd
2.排列:itertools.permutations()用法:
import itertools for i in itertools.permutations('abc'): print(i) # ('a', 'b', 'c') # ('a', 'c', 'b') # ('b', 'a', 'c') # ('b', 'c', 'a') # ('c', 'a', 'b') # ('c', 'b', 'a')
4.datetime模块函数
1.设年份
import datetime s=datetime.date(2022,4,7)
2.查询星期几
import datetime s=datetime.date(2022,4,7) s.weekday()
3.查询年月日,在后面跟上year或month或day
import datetime s=datetime.date(2022,4,7) s.day
4.设置时间间隔 以天为单位
delta=datetime.timedelta(days=1)
5.判断日期合法性
def judge(x,y,z): try: s=datetime.date(x,y,z) except: print('日期不合法')
5.pow()函数
pow(x,y)表示求解x的y次幂 pow(x,y,z)表示求解x的y次幂对z取余后的结果
print(pow(2,3)) # 2的3次方是多少 # 8
print(pow(2,3,5)) # 2的3次方是8,然后8再对5进行取余处理 # 3
六、规定套路
1.判断质数
def zhishu(x): for i in range(2,int(x**0.5)+1): if x%i == 0: return False return True
2.判断闰年
y = int(input()) if (y%4==0 and y%100 != 0) or y % 400 == 0: print('yes!') else: print('No!')
3.全排列
import itertools for i in itertools.permutations([x for x in range(1,10)]): print(i)
大家加油!相信自己,去考出自己的理想成绩吧~
🌟
The best time to plant a tree is ten years ago, followed by now!
🌟
🌲🌲🌲 最后,作者很感谢能够阅读到这里的读者。如果看完觉得好的话,还请轻轻点一下赞或者分享给更多的人,你们的鼓励就是作者继续行文的动力。 ❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了,我们下期再见~