蓝桥杯第25天(Python)(菜鸟教程知识点回顾)

目录

1.函数模块

1.可更改(mutable)与不可更改(immutable)对象(即函数内部是否需要声明Global)

 2.匿名函数

3.format函数

 2.Python数据结构

1.列表的方法

 2.创建方法

3.字典内置函数和方法

 4.集合内置方法

 5.运算符

3.Python3 标准库概览

 1.datetime库

2.math库

3. collections # 队列

4.itertools  # 排列组合

5.heapq  #小顶堆()

6.functools   # 自定义比较函数  -1不变,1交换

7.sys

4.Python内置函数 


1.函数模块

1.可更改(mutable)与不可更改(immutable)对象(即函数内部是否需要声明Global)

 2.匿名函数

3.format函数

  填充要指定对齐方式才可以

a = 5.5
print("a的值为{0:.0f}".format(a))
# 执行结果
a的值为6

print("{0:5}---{1:<6d}".format("张三",18))
print("{0:<5}---{1:6d}".format("张三",18))
print("{1:5d}---{0:6}".format("张三",18))
# 执行结果
张三   ---18    
张三   ---    18
   18---张三 

print("{0:,}".format(10000))
# 执行结果
10,000


print("{0:.3%}".format(0.24))
# 执行结果
24.000%

 2.Python数据结构

1.列表的方法

 2.创建方法

字典 a=dict{ }

列表 a=[ ]  

元组 a=( b,)  a=tuple()

集合 a={ }   a=set( )

3.字典内置函数和方法

 4.集合内置方法

 5.运算符

3.Python3 标准库概览

 1.datetime库

>>> # dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # dates support calendar arithmetic
>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368

datetime.timedelta(1)  # 以1为递增

day1=datetime.date(2001,2,2)
day2=datetime.date(2001,2,28)
delta=day2-day1
#print(delta)  #26 days, 0:00:00
print(delta.days)  #26
print(day1.day)  # 当前月的第几日
print(day1.isoweekday()) # 判断星期几

2.math库

3. collections # 队列

import collections
deque=collections.deque()

4.itertools  # 排列组合

import itertools
itertools.combinations(iter,2)  # 组合 

itertools.permutations(iter,2)  #排列


from itertools import combinations
a = ['h', 'y', 'k', 'q', 's']
    for i in combinations(a, 2):
        print(i)

(‘h’, ‘y’)
(‘h’, ‘k’)
(‘h’, ‘q’)
(‘h’, ‘s’)
(‘y’, ‘k’)
(‘y’, ‘q’)
(‘y’, ‘s’)
(‘k’, ‘q’)
(‘k’, ‘s’)
(‘q’, ‘s’)

5.heapq  #小顶堆()

import heapq  # 导入堆
def dij(s):
    done=[0 for i in range(n+1)]  # 记录是否处理过
    hp=[]  #堆
    dis[s]=0
    heapq.heappush(hp,(0,s))   #入堆,小顶堆
    while hp:
        u=heapq.heappop(hp)[1] #出堆元素结点
        if done[u]: #当前结点处理过
            continue
        done[u]=1
        for i in range(len(G[u])): #遍历当前结点的邻居
            v,w =G[u][i]
            if done[v]:continue
            dis[v]=min(dis[v],dis[u]+w)  # 更新当前结点邻居的最短路径
            heapq.heappush(hp,(dis[v],v))
 
 
 
 
n,m = map(int,input().split())#
s=1  # 从1开始访问
G=[[]for i in range(n+1)]   #邻接表存储
inf = 2**50
dis = [inf]*(n+1) #存储距离
for i in range(m):# 存边,这里是单向边
    u,v,w = map(int,input().split())
    G[u].append((v,w))  #记录结点u的邻居和边长
 
dij(s)
for i in range(1,n+1):
    if dis[i]==inf:
        print("-1",end=' ')
    else:
        print(dis[i],end=' ')

6.functools   # 自定义比较函数  -1不变,1交换

import functools
def cmp(x,y):
    pass
    # return -1 不变,return 1 交换x,y位置


sorted(iter,key=functools.cmp_to_key(cmp))

7.sys

import sys
sys.setrecursionlimit(300000)  #设置最大递归深度,DFS一定要弄

sys.exit()  # 退出程序

4.Python内置函数 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值