蓝桥杯-python-常用库归纳

目录

日期和时间

datetime模块

date日期类,time时间类,datetime日期时间类

定义date(年,月,日)

data之间的减法

定义时间(时,分,秒)

定义datetime(年,月,日,时,分,秒)

计算日期

计算时间差

例题-lanqiao 611

例题-lanqiao 2096

math库

heapq库

itertools库


日期和时间

datetime模块

from datetime import datetime, timedelta 这行代码是 Python 中的导入语句,用于从 datetime 模块中导入特定的类或函数。

datetime 类:datetime 类是 Python 中处理日期和时间的基本类之一。它允许创建表示特定日期和时间的对象,以及执行各种与日期和时间相关的操作,如格式化、比较、计算等。

timedelta 类:timedelta 类用于表示时间间隔,即两个日期或时间之间的差异。它可以表示以天、小时、分钟、秒等单位的时间差。timedelta 类通常与 datetime 类一起使用,用于在日期和时间上执行加法或减法运算。

date日期类,time时间类,datetime日期时间类

定义date(年,月,日)
import datetime
a=datetime.date(2024,3,10)
print(type(a))
print(a)

#<class 'datetime.date'>
#2024-03-10
data之间的减法
import datetime
a=datetime.date(2024,3,10)
b=datetime.date(2024,3,12)
print(type(b-a))
print(b-a)

#<class 'datetime.timedelta'>
#2 days, 0:00:00
定义时间(时,分,秒)
import datetime
a=datetime.time(5,59,59)
print(type(a))
print(a)

#<class 'datetime.time'>
#05:59:59
定义datetime(年,月,日,时,分,秒)
import datetime
a=datetime.datetime(2024,3,31,20,30,50)
print(a.date())
print(a.time())
print(a)

#2024-03-31
#20:30:50
#2024-03-31 20:30:50
计算日期
import datetime
a=datetime.datetime(2024,3,31,20,30,50)
delta = datetime.timedelta(days=100)
b=a+delta #计算100天后的日期
print(b)
b=a-delta #计算100天前的日期
print(b)

#2024-07-09 20:30:50
#2023-12-22 20:30:50
计算时间差
import datetime
a=datetime.datetime(2024,3,31,20,55,51)
b=datetime.datetime(2022,10,5,20,30,50)
delta=a-b
print(delta) #计算时间差
print(delta.days) #输出时间差的天数
print(delta.seconds) #输出秒数
print(delta.total_seconds())#统一转换成秒

#543 days, 0:25:01
#543
#1501
#46916701.0


例题-lanqiao 611

计算从1901年1月1日到2000年12月31日存在多少个星期1

#利用date数据类型的weekday方法判断是否为周一

#利用timedelta不断增加1天

解析:
 

首先,导入datetime模块,然后定义两个日期对象start和end,分别表示起始日期和结束日期。接着,定义一个变量ans用于存储结果。

接下来,使用while循环遍历从start到end的每一天。在循环内部,使用weekday()方法判断当前日期是否为周一(weekday()返回值为0表示周一),如果是,则将ans加1。然后,使用timedelta对象将start日期加1天,继续下一次循环。

最后,循环结束后,打印ans的值,即1901年1月1日至2000年12月31日期间,每周一的总数。

import datetime
start=datetime.date(1901,1,1)
end=datetime.date(2000,12,31)
ans=0
while start <= end:
    if start.weekday()==0:
        ans+=1
    start+=datetime.timedelta(days=1)
print(ans)

例题-lanqiao 2096

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456等

顺子日期指的就是在日期的yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。

例如20220123 就是一个顺子日期,因为它出现了一个顺子:123;而20221023 则不是一个顺子日期,它一个顺子也没有。

小明想知道在整个2022年份中,一共有多少个顺子日期

分析:

首先,导入datetime模块,然后定义两个日期对象start和end,分别表示起始日期和结束日期。接着,定义一个列表m,包含了需要查找的数字序列。再定义一个变量ans用于存储结果。

接下来,使用while循环遍历从start到end的每一天。在循环内部,使用strftime()方法将当前日期转换为字符串格式,并赋值给now_date。然后,使用for循环遍历列表m中的每个元素x,判断x是否在now_date中。如果存在,则将ans加1,并跳出当前循环。最后,将start日期加1天,继续下一次循环。

最后,循环结束后,打印ans的值,即2022年1月1日至2022年12月31日期间,日期中包含数字序列'012'、'123'、'234'、'345'、'456'、'567'、'678'或'789'的天数。

import datetime
start=datetime.date(2022,1,1)
end=datetime.date(2022,12,31)
m=['012','123','234','345','456','567','678','789']
ans=0
while start <= end:
    now_date=start.strftime("%Y%m%d")
    for x in m:
        if x in now_date:
            ans+=1
            break
        start+=datetime.timedelta(days=1)
print(ans)



math库




heapq库

Python的heapq模块提供了堆数据结构的实现,堆是一种特殊的树形数据结构,每个父节点的值都小于或等于其子节点的值。这个模块提供了一些函数,如heappush、heappop等,可以用来操作堆。

常规使用示例:

import heapq

# 创建一个空堆
heap = []

# 向堆中添加元素
heapq.heappush(heap, 3)
heapq.heappush(heap, 1)
heapq.heappush(heap, 5)
heapq.heappush(heap, 2)

# 输出堆中的元素
print(heap)
# 输出:[1, 2, 5, 3]

# 从堆中弹出最小元素
min_element = heapq.heappop(heap)
print(min_element)
# 输出:1

# 从堆中弹出最小元素并添加元素7
heapq.heapreplace(heap,7)

# 输出堆中的元素
print(heap)
# 输出:[3, 7, 5]



itertools库

Python的itertools模块提供了许多用于创建有效循环迭代器的函数,这些迭代器可以用于处理数据流、生成组合和排列等。这个模块有很多有用的函数,如cycle、permutations、combinations(循环,排列,组合)等。

import itertools

# 创建一个无限循环的迭代器
counter = itertools.count(start=1, step=2)
print(next(counter))
print(next(counter))
print(next(counter))
# 输出:1 3 5

# 创建一个循环迭代器
cycler = itertools.cycle('AB')
print(next(cycler))
print(next(cycler))
print(next(cycler))
print(next(cycler))
# 输出:A B A B

# 生成一个列表的所有排列
permutations = list(itertools.permutations([1, 2, 3]))
print(permutations)
# 输出:[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

# 生成一个列表的所有组合
combinations = list(itertools.combinations([1, 2, 3], 2))
print(combinations)
# 输出:[(1, 2), (1, 3), (2, 3)]

#以上内容仅为本人知识归纳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/505417.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

42.HarmonyOS鸿蒙系统 App(ArkUI)实现横屏竖屏自适应

HarmonyOS鸿蒙系统 App(ArkUI)实现横屏竖屏自适应 媒体查询作为响应式设计的核心&#xff0c;在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景&#xff1a; 针对设备和应用的属性信息&#xff08;比如显示…

【Linux】进程实践项目 —— 自主shell编写

送给大家一句话&#xff1a; 不管前方的路有多苦&#xff0c;只要走的方向正确&#xff0c;不管多么崎岖不平&#xff0c;都比站在原地更接近幸福。 —— 宫崎骏《千与千寻》 自主shell命令编写 1 前言2 项目实现2.1 创建命令行2.2 获取命令2.3 分割命令2.4 运行命令 3 源代码…

计算机服务器中了rmallox勒索病毒怎么办?rmallox勒索病毒解密数据恢复

网络技术的不断发展与应用&#xff0c;大大提高了企业的生产运营效率&#xff0c;越来越多的企业开始网络开展各项工作业务&#xff0c;网络在为人们提供便利的同时&#xff0c;也会存在潜在威胁。近日&#xff0c;云天数据恢复中心接到多家企业的求助&#xff0c;企业的计算机…

Python内置函数enumerate()

Python的内置函数enumerate()。在学习过程中遇到了一点小问题。记录一下。 enumerate() 是 Python 中常用的内置函数之一&#xff0c;它可以用来同时遍历序列的索引和对应的值。具体来说&#xff0c;enumerate() 接受一个可迭代对象作为参数&#xff0c;返回一个包含索引和值的…

vuees6新语法

vue的学习网站&#xff1a; https://www.runoob.com/vue2/vue-tutorial.html1.Vue的介绍 学习目标 说出什么是Vue能够说出Vue的好处能够说出Vue的特点 内容讲解 【1】Vue介绍 1.vue属于一个前端框架&#xff0c;底层使用原生js编写的。主要用来进行前端和后台服务器之间的…

Holiday Notice

Holiday Notice 放假通知 要是每个公司都能放假放的多&#xff0c;把加班折算放假落实到位&#xff0c;还怕我们不努力干活&#xff0c;巴不得把全年都干完了&#xff0c;然后休息。

HCIP【GRE VPN配置】

目录 实验要求&#xff1a; 实验配置思路&#xff1a; 实验配置过程&#xff1a; 一、按照图式配置所有设备的IP地址 &#xff08;1&#xff09;首先配置每个接口的IP地址 &#xff08;2&#xff09;配置静态路由使公网可通 二、在公网的基础上创建GRE VPN隧道&#xff0…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(上)

介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用&#xff0c;主要功能包括&#xff1a; 用户可以创建最多6个健康生活任务&#xff08;早起&#xff0c;喝水&#xff0c;吃苹果&#xff0c;每日微笑&#xff0c;刷牙&#xff0c;早睡&#xff09;&#xff0c;并设置任…

C++list的模拟实现

为了实现list&#xff0c;我们需要实现三个类 一、List的节点类 template<class T> struct ListNode {ListNode(const T& val T()):_pPre(nullptr),_pNext(nullptr),_val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val; }; 二、List的迭代器…

2024年腾讯云服务器99元一年_老用户优惠续费不涨价

腾讯云99元一年服务器配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff0c;新用户和老用户都可以购买&#xff0c;续费不涨价&#xff0c;续费价格也是99元一年。以往腾讯云优惠服务器都是新用户专享的&#xff0c;这款99元服务器老用户也可以购买&#xff0c;这是…

Spring Task 知识点详解、案例、源代码解析

简介&#xff1a;Spring Task 定时任务   所谓定时任务。就是依据我们设定的时间定时运行任务&#xff0c;就像定时发邮件一样&#xff0c;设定时间到了。邮件就会自己主动发送。 在Spring大行其道的今天&#xff0c;Spring也提供了其定时任务功能&#xff0c;Spring Task。同…

安装dalton过程中出现的pcre问题

在前面文章中&#xff0c;基于多种流量检测引擎识别pcap数据包中的威胁&#xff0c;并没有详细的说明dalton的安装。由于dalton提供了脚本./start-dalton.sh &#xff0c;执行之后会自动的安装各种依赖以及suricata&#xff0c;zeek&#xff0c;snort的容器环境。但是在实际执行…

编程新手必看!从零起步掌握Python的终极指南,Python简介(1)

1、Python语言的诞生 Python的作者&#xff0c;Guido von Rossum&#xff08;吉多范罗苏姆&#xff0c;中国Python程序员都叫他 龟叔&#xff09;&#xff0c;荷兰人。1982年&#xff0c;龟叔从阿姆斯特丹大学获得了数学和计算机硕士学位。然而&#xff0c;尽管他算得上是一位…

内存管理--柔性数组

本次讲的是&#xff0c;柔性数组&#xff0c;如果哪位小博客想要了解的更多&#xff0c;可以登录下面这个网站&#xff0c;了解详细内容 C语言结构体里的成员数组和指针 | 酷 壳 - CoolShellhttps://coolshell.cn/articles/11377.html 我们就听说过数组&#xff0c;听说过柔性数…

Excel求解二元一次方程

背景&#xff1a;如果想求解二元一次方程&#xff0c;常规方法就是联立方程求出一个未知数&#xff0c;然后带入任意一个等式。那么在excel里面应该怎么解决呢&#xff1f; 总所周知&#xff0c;大学里面会学矩阵行列式&#xff0c;二元一次方程其实就是一个简单的矩阵行列式。…

006 高并发内存池_PageCache设计

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;高并发内存池 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言文章重点一、回顾PageCache页缓存结构二、PageCache结构设计三、完善申请内存函数小结 前言 本文将…

聊一聊电子邮件?

电子邮件是什么&#xff1f; 电子邮件是一种基于客户/服务器架构的应用。功能是实现人与人之间的交流。直到现在&#xff0c;电子邮件依然是当前因特网 注意&#xff1a;基于客户/服务器方式和基于B/S架构不一样&#xff01;客户/服务器表示的范围更广&#xff0c;当基于客户…

Linux环境jdk、git、maven、MySQL和redis的安装和配置

这里整理了在Linux上如何安装和配置jdk、git、maven、MySQL和redis&#xff0c;主要用于在Linux上部署Java项目 文章中博主使用了一个叫FinalShell远程连接软件进行上传&#xff0c;如果没有类似的工具也可以直接通过yum命令行下载包 博主使用的Linux服务器为centos7&#xf…

2024最新版Android studio安装入门教程(非常详细)

目录 JDK安装与配置 一、下载JDK 二、JDK安装 三、JDK的环境配置 四、JDK的配置验证 Android studio安装 Android studio连接手机真机调试&#xff08;以华为鸿蒙为例&#xff09; 一、新建一个android项目 二、进入项目面板 三、配置Android Studio 四、安装手机驱…

【JavaSE】初识线程,线程与进程的区别

文章目录 ✍线程是什么&#xff1f;✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么&#xff1f; ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…