备赛蓝桥杯-Python-考前突击

额,,离蓝桥杯开赛还有十个小时,最近因为考研复习节奏的问题,把蓝桥杯的优先级后置了,突然才想起来还有一个蓝桥杯呢。。

到目前为止python基本语法熟练了,再补充一些常用函数供明天考前再背背,算法来不及看了,eh,嘿嘿...祝友友们都能拿省一!

 

一、字符串

1.ASCII码函数

print(ord('L')-ord('A')+65)

ord()函数可以将字符转换为对应的ASCII码,chr()函数可以将ASCII码转换为对应的字符

 

2.字母大小写函数

upper() 方法

upper() 方法将字符串中的所有小写字母转换为大写字母。

lower() 方法

lower() 方法将字符串中的所有大写字母转换为小写字母。

capitalize() 方法

capitalize() 方法将字符串的第一个字母转换为大写,其余字母转换为小写。

title() 方法

title() 方法将每个单词的首字母转换为大写,其余字母转换为小写。

 

3.分割函数

str.split(sep=None,maxsplit=-1)

表示:使用sep子字符串分割字符串str。maxsplit是最大分割次数

str.rsplit(sep=None,maxsplit=-1)

表示:从右到左分割字符串

4.字符串列表转int列表

list = [ int(i) for i in str]

 

 

 

 

 

二、时间函数

datetime.datetime 函数说明

datetime.datetime 是 Python 中 datetime 模块的一个类,用于处理日期和时间。通过该类可以创建一个包含日期和时间的对象。

  • datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0) 创建一个日期时间对象,参数包括年、月、日、时、分、秒和微秒。例如:

    datetime.datetime(1970, 1, 1, 0, 0, 0)  # 表示纪元时间起点

常用日期和时间函数总结

1. 日期时间的创建与解析

  • datetime.datetime.now() 获取当前的日期和时间。

    now = datetime.datetime.now()
  • datetime.datetime.strptime(date_string, format) 将字符串按指定格式解析为 datetime 对象。

    dt = datetime.datetime.strptime("2023-10-01 12:30:45", "%Y-%m-%d %H:%M:%S")
  • datetime.datetime.strftime(format)datetime 对象格式化为字符串。

    formatted = dt.strftime("%Y-%m-%d %H:%M:%S")

2. 日期时间的运算

  • datetime.timedelta 表示两个日期或时间之间的差值,支持加减运算。

    delta = datetime.timedelta(days=1, hours=2, minutes=30)
    new_time = datetime.datetime.now() + delta
  • datetime.datetime.timestamp()datetime 对象转换为时间戳(自纪元时间以来的秒数)。

    timestamp = datetime.datetime.now().timestamp()
  • datetime.datetime.fromtimestamp(timestamp) 将时间戳转换为 datetime 对象。

    dt = datetime.datetime.fromtimestamp(1696138245)

3. 日期时间的属性

  • year, month, day, hour, minute, second, microsecond 获取 datetime 对象的各个部分。

    dt = datetime.datetime.now()
    print(dt.year, dt.month, dt.day)
  • weekday()isoweekday() 获取星期几,weekday() 返回 0(周一)到 6(周日),isoweekday() 返回 1(周一)到 7(周日)。

    print(dt.weekday(), dt.isoweekday())

4. 其他常用功能

  • datetime.date.today() 获取当前日期(不包含时间)。

    today = datetime.date.today()
  • datetime.time(hour=0, minute=0, second=0, microsecond=0) 创建一个时间对象。

    t = datetime.time(12, 30, 45)
  • datetime.datetime.combine(date, time) 将日期和时间组合成一个 datetime 对象。

    combined = datetime.datetime.combine(datetime.date.today(), datetime.time(12, 30))

 

用一道真题融会贯通

问题描述

小蓝发现了一个神奇的闹钟,从纪元时间(19701970 年 11 月 11 日 00:00:0000:00:00)开始,每经过 xx 分钟,这个闹钟便会触发一次闹铃 (纪元时间也会响铃)。这引起了小蓝的兴趣,他想要好好研究下这个闹钟。

对于给出的任意一个格式为 уууу-MM-ddHH:mm:ssуууу-MM-ddHH:mm:ss 的时间,小蓝想要知道在这个时间点之前 (包含这个时间点) 的最近的一次闹铃时间是哪个时间?

注意,你不必考虑时区问题。

输入格式

输入的第一行包含一个整数 TT,表示每次输入包含 TT 组数据。

接下来依次描述 TT 组数据。

每组数据一行,包含一个时间(格式为 уууу-MM-ddHH:mm:ssуууу-MM-ddHH:mm:ss)和一个整数 xx,其中 xx 表示闹铃时间间隔(单位为分钟)。

输出格式

输出 TT 行,每行包含一个时间(格式为 уууу-MM-ddHH:mm:ssуууу-MM-ddHH:mm:ss),依次表示每组数据的答案。

样例输入

2
2016-09-07 18:24:33 10
2037-01-05 01:40:43 30

 

样例输出

2016-09-07 18:20:00
2037-01-05 01:30:00

 

评测用例规模与约定

对于所有评测用例,1≤T≤10,1≤x≤10001≤T≤10,1≤x≤1000,保证所有的时间格式都是合法的。

 

思路

当作练习日期的函数很好
思路就是:用输入的时间和1970这个日期的差值对闹铃时间间隔取余,由此得到输入的时间和上一次闹铃响的时刻的时间差值(分钟),减去就行
关键点在于掌握时间函数的用法。

 

代码

import datetimen = int(input())
for _ in range(n):time = input().rsplit(" ", 1)delt = int(time[1])oratime = datetime.datetime.strptime('1970-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')nowtime = datetime.datetime.strptime(time[0], '%Y-%m-%d %H:%M:%S')x = (nowtime - oratime) % datetime.timedelta(minutes=delt)finaltime = nowtime - xprint(finaltime)

三、 常用排序函数

sorted()函数

  • 功能: 返回一个新的排序后的列表。

  • 参数:

    • iterable: 可迭代对象(如列表、元组等)。

    • key (可选): 一个函数,用于从每个元素中提取比较键。

    • reverse (可选): 布尔值,True 表示降序排序,默认为 False(升序)。

# 示例
numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 5, 5, 6, 9]# 使用 key 参数
words = ["banana", "apple", "cherry"]
sorted_words = sorted(words, key=len)
print(sorted_words)  # 输出: ['apple', 'banana', 'cherry']# 降序排序
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # 输出: [9, 6, 5, 5, 2, 1]

list.sort() 方法

  • 功能: 对列表进行原地排序。

  • 参数:

    • key (可选): 一个函数,用于从每个元素中提取比较键。

    • reverse (可选): 布尔值,True 表示降序排序,默认为 False(升序)。

# 示例
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort()
print(numbers)  # 输出: [1, 2, 5, 5, 6, 9]
​
# 使用 key 参数
words = ["banana", "apple", "cherry"]
words.sort(key=len)
print(words)  # 输出: ['apple', 'banana', 'cherry']
​
# 降序排序
numbers.sort(reverse=True)
print(numbers)  # 输出: [9, 6, 5, 5, 2, 1]

四、 蓝桥杯其它常用函数

(1) 输入输出

  • input(): 从标准输入读取一行数据。

  • print(): 将数据输出到标准输出。

(2) 字符串操作

  • str.split(separator): 将字符串按指定分隔符分割成列表。

  • str.join(iterable): 将可迭代对象中的元素连接成一个字符串。

  • str.strip(): 去除字符串两端的空白字符。

  • str.splitlines(): 按行分割字符串。

# 示例
text = "a b c\nd e f"
lines = text.splitlines()
print(lines)  # 输出: ['a b c', 'd e f']
​
words = "a,b,c".split(",")
print(words)  # 输出: ['a', 'b', 'c']
​
joined = " ".join(words)
print(joined)  # 输出: 'a b c'

(3) 列表操作

  • list.append(element): 在列表末尾添加一个元素。

  • list.extend(iterable): 将可迭代对象中的所有元素添加到列表末尾。

  • list.insert(index, element): 在指定位置插入一个元素。

  • list.remove(element): 删除列表中第一个匹配的元素。

  • list.pop([index]): 删除并返回指定位置的元素,默认为最后一个元素。

  • list.index(element): 返回元素在列表中的第一个匹配索引。

  • list.count(element): 返回元素在列表中出现的次数。

  • list.sort(): 对列表进行原地排序。

  • list.reverse(): 反转列表中的元素顺序。

# 示例
numbers = [1, 2, 3]
numbers.append(4)
print(numbers)  # 输出: [1, 2, 3, 4]
​
numbers.extend([5, 6])
print(numbers)  # 输出: [1, 2, 3, 4, 5, 6]
​
numbers.insert(0, 0)
print(numbers)  # 输出: [0, 1, 2, 3, 4, 5, 6]
​
numbers.remove(3)
print(numbers)  # 输出: [0, 1, 2, 4, 5, 6]
​
popped = numbers.pop()
print(popped)  # 输出: 6
print(numbers)  # 输出: [0, 1, 2, 4, 5]
​
index = numbers.index(2)
print(index)  # 输出: 2
​
count = numbers.count(1)
print(count)  # 输出: 1
​
numbers.sort(reverse=True)
print(numbers)  # 输出: [4, 2, 1, 0]
​
numbers.reverse()
print(numbers)  # 输出: [0, 1, 2, 4]

(4) 数组操作

  • array.array(typecode, initializer): 创建一个数组对象。

  • array.append(x): 在数组末尾添加一个元素。

  • array.extend(iterable): 将可迭代对象中的所有元素添加到数组末尾。

  • array.insert(i, x): 在指定位置插入一个元素。

  • array.remove(x): 删除数组中第一个匹配的元素。

  • array.pop([i]): 删除并返回指定位置的元素,默认为最后一个元素。

  • array.index(x): 返回元素在数组中的第一个匹配索引。

  • array.count(x): 返回元素在数组中出现的次数。

import array
​
# 示例
arr = array.array('i', [1, 2, 3])
arr.append(4)
print(arr)  # 输出: array('i', [1, 2, 3, 4])
​
arr.extend([5, 6])
print(arr)  # 输出: array('i', [1, 2, 3, 4, 5, 6])
​
arr.insert(0, 0)
print(arr)  # 输出: array('i', [0, 1, 2, 3, 4, 5, 6])
​
arr.remove(3)
print(arr)  # 输出: array('i', [0, 1, 2, 4, 5, 6])
​
popped = arr.pop()
print(popped)  # 输出: 6
print(arr)  # 输出: array('i', [0, 1, 2, 4, 5])
​
index = arr.index(2)
print(index)  # 输出: 2
​
count = arr.count(1)
print(count)  # 输出: 1

(5) 集合操作

  • set(): 创建一个集合对象。

  • set.add(element): 添加一个元素到集合。

  • set.update(iterable): 将可迭代对象中的所有元素添加到集合。

  • set.remove(element): 删除集合中指定的元素。

  • set.discard(element): 删除集合中指定的元素,如果不存在则不报错。

  • set.pop(): 删除并返回集合中的一个元素。

  • set.clear(): 清空集合。

  • set.union(iterable): 返回两个集合的并集。

  • set.intersection(iterable): 返回两个集合的交集。

  • set.difference(iterable): 返回两个集合的差集。

  • set.symmetric_difference(iterable): 返回两个集合的对称差集。

# 示例
set1 = {1, 2, 3}
set2 = {3, 4, 5}
​
set1.add(4)
print(set1)  # 输出: {1, 2, 3, 4}
​
set1.update([5, 6])
print(set1)  # 输出: {1, 2, 3, 4, 5, 6}
​
set1.remove(3)
print(set1)  # 输出: {1, 2, 4, 5, 6}
​
set1.discard(7)  # 不会报错
print(set1)  # 输出: {1, 2, 4, 5, 6}
​
popped = set1.pop()
print(popped)  # 输出: 1 或其他元素
print(set1)  # 输出: {2, 4, 5, 6}
​
set1.clear()
print(set1)  # 输出: set()
​
union_set = set1.union(set2)
print(union_set)  # 输出: {3, 4, 5}
​
intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出: set()
​
difference_set = set1.difference(set2)
print(difference_set)  # 输出: set()
​
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # 输出: {3, 4, 5}

(6) 字典操作

  • dict(): 创建一个字典对象。

  • dict[key] = value: 添加或更新键值对。

  • dict.get(key, default=None): 获取指定键的值,如果不存在则返回默认值。

  • dict.pop(key, default=None): 删除并返回指定键的值,如果不存在则返回默认值。

  • dict.keys(): 返回字典中所有键的视图。

  • dict.values(): 返回字典中所有值的视图。

  • dict.items(): 返回字典中所有键值对的视图。

  • dict.update(iterable): 将可迭代对象中的键值对更新到字典。

  • dict.clear(): 清空字典。

# 示例
my_dict = {'a': 1, 'b': 2}
my_dict['c'] = 3
print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3}
​
value = my_dict.get('b')
print(value)  # 输出: 2
​
popped_value = my_dict.pop('a')
print(popped_value)  # 输出: 1
print(my_dict)  # 输出: {'b': 2, 'c': 3}
​
keys = my_dict.keys()
print(keys)  # 输出: dict_keys(['b', 'c'])
​
values = my_dict.values()
print(values)  # 输出: dict_values([2, 3])
​
items = my_dict.items()
print(items)  # 输出: dict_items([('b', 2), ('c', 3)])
​
my_dict.update({'d': 4})
print(my_dict)  # 输出: {'b': 2, 'c': 3, 'd': 4}
​
my_dict.clear()
print(my_dict)  # 输出: {}

(7) 数学运算

  • math 模块:

    • math.ceil(x): 向上取整。

    • math.floor(x): 向下取整。

    • math.sqrt(x): 计算平方根。

    • math.pow(x, y): 计算 x 的 y 次方。

    • math.log(x, base): 计算以 base 为底的对数。

    • math.sin(x), math.cos(x), math.tan(x): 三角函数。

    • math.factorial(x): 计算阶乘。

    • math.gcd(a, b): 计算最大公约数。

import math
​
# 示例
x = 3.7
print(math.ceil(x))  # 输出: 4
print(math.floor(x))  # 输出: 3
​
y = 16
print(math.sqrt(y))  # 输出: 4.0
​
print(math.pow(2, 3))  # 输出: 8.0
​
print(math.log(10, 10))  # 输出: 1.0
​
print(math.sin(math.pi / 2))  # 输出: 1.0
​
print(math.factorial(5))  # 输出: 120
​
print(math.gcd(12, 18))  # 输出: 6

 

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

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

相关文章

Matlab 汽车ABS的bangbang控制和模糊PID控制

1、内容简介 Matlab 197-汽车ABS的bangbang控制和模糊PID控制 可以交流、咨询、答疑 2、内容说明 略 摘要:本文旨在设计一种利用模糊控制理论优化的pid控制器,控制abs系统,达到对滑移率最佳控制范围的要求 ,所提出的方案采用级联…

题目 2701: 蓝桥杯2022年第十三届决赛真题-取模(C/C++/Java组)

题目 2701: 蓝桥杯2022年第十三届决赛真题-取模&#xff08;C/C/Java组&#xff09; 时间限制: 3s 内存限制: 512MB 提交: 6633 解决: 1263 题目描述 给定 n, m &#xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x n mod y 。 输入格式 输入包含多…

蓝桥杯C/C++省赛/国赛注意事项及运行环境配置

大佬的蓝桥杯考前急救指南 对拍&#xff08;手动生成测试数据&#xff09;代码&#xff1a; #include <bits/stdc.h> // 包含所有标准库的头文件 using namespace std; // 使用标准命名空间int main() {srand(time(0)); // 设置随机数种子为当前时间&#xff0c;确保每次…

13、nRF52xx蓝牙学习(GPIOTE组件方式的任务配置)

下面再来探讨下驱动库如何实现任务的配置&#xff0c;驱动库的实现步骤应该和寄存器方式对应&#xff0c;关 键点就是如何调用驱动库的函数。 本例里同样的对比寄存器方式编写两路的 GPOITE 任务输出&#xff0c;一路配置为输出翻转&#xff0c;一路设 置为输出低电平。和 …

使用Apache POI(Java)创建docx文档和表格

1、引入poi 依赖组件 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId>&…

利用 RNN 预测股票价格:从数据处理到可视化实战

在金融领域&#xff0c;预测股票价格走势一直是众多投资者和研究者关注的焦点。今天&#xff0c;我们将利用深度学习中的循环神经网络&#xff08;RNN&#xff09;来构建一个简单的股票价格预测模型&#xff0c;并详细介绍从数据加载、预处理、模型搭建、训练到最终结果可视化的…

华为RH2288H V3服务器极速重装:从RedHat到openEuler 24超详细重装指南

1 登录iBMC口 2 配置启动项 点击&#xff1a;配置&#xff0c;点击&#xff1a;系统启动项 点击&#xff1a;单次有效&#xff0c;选择&#xff1a;光驱&#xff0c;点击&#xff1a;保存 3 进Remote Contro 点击&#xff1a;远程控制&#xff0c;进入如下界面 点击&#xff1…

+++++背到厌倦。持续更新

Spring IoC 的工作流程: 读取 BeanDefinition: Spring 容器启动时&#xff0c;会读取 Bean 的配置信息 (例如 XML 配置文件、注解或 Java 代码)&#xff0c;并将这些配置信息转换为 BeanDefinition 对象。创建 Bean 实例: 根据 BeanDefinition 中的信息&#xff0c;Spring 容器…

【机器学习算法】基于python商品销量数据分析大屏可视化预测系统(完整系统源码+数据库+开发笔记+详细启动教程)✅

目录 一、项目背景 二、技术思路 三、算法介绍 四、项目创新点 五、开发技术介绍 六、项目展示 一、项目背景 本项目基于Python技术栈构建了"商品销量数据分析与预测系统"&#xff0c;通过自动化爬取淘宝商品多维数据&#xff08;价格、销量、评价、品类等&a…

Server-Sent Events一种允许服务器向客户端发送实时更新的 Web API

Server-Sent Events&#xff08;SSE&#xff09;是一种允许服务器向客户端发送实时更新的 Web API。它基于 HTTP 协议&#xff0c;提供了一种单向的、服务器到客户端的通信机制&#xff0c;客户端可以通过监听服务器发送的事件来接收实时数据。下面从原理、使用场景、代码示例等…

用Perl和HTTP::Tiny库的爬虫

HTTP::Tiny是Perl的一个轻量级HTTP客户端&#xff0c;适合简单的请求&#xff0c;但不像LWP那样功能全面&#xff0c;不过对于基本需求应该足够了。 首先&#xff0c;我需要熟悉HTTP::Tiny的基本用法。比如如何发起GET请求&#xff0c;设置user-agent&#xff0c;处理响应。用…

Vue3性能优化终极指南:编译策略、运行时调优与全链路监控

一、Vue3性能优化体系框架 1.1 性能优化全景图谱 1.2 关键性能指标定义表 指标测量方式优化目标核心影响因子FCPLighthouse<1.5s资源加载速度LCPPerformance API<2.5s关键资源大小TTIWebPageTest<3.5s主线程阻塞时间Memory UsageChrome DevTools<50MB对象引用策略…