蓝桥杯基础回扣:---- 与大家共勉 相信自己最重要

举报
是Dream呀 发表于 2022/04/11 18:04:26 2022/04/11
【摘要】 蓝桥杯基础回扣:---- 与大家共勉 相信自己最重要

在这里插入图片描述

📢📢📢📣📣📣
🌻🌻🌻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! 🌟

🌲🌲🌲 最后,作者很感谢能够阅读到这里的读者。如果看完觉得好的话,还请轻轻点一下赞或者分享给更多的人,你们的鼓励就是作者继续行文的动力。
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了,我们下期再见~
在这里插入图片描述
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。