蓝桥杯算法之基础知识(6)

目录

Ⅰ.os操作

Ⅱ.时间库(很重要)

Ⅲ.基本单位换算(ms,min,h的单位换算)

Ⅳ.时间戳

Ⅴ.文件读取

Ⅵ.堆

Ⅶ.math操作

Ⅷ.range()方法单独使用

[Ⅸ.python 的异常输出](#Ⅸ.python 的异常输出)

[Ⅹ.for-else 和while-else](#Ⅹ.for-else 和while-else)


Ⅰ.os操作

Ⅱ.时间库(很重要)

Ⅲ.基本单位换算(ms,min,h的单位换算)


基本单位换算

1 秒 = 1000 毫秒

1 分钟 = 60 秒

1 小时 = 60 分钟 = 3600 秒

转换步骤

将毫秒转换为秒:

毫秒数除以 1000,得到总秒数。

例如,46800999 毫秒 = 46800999 // 1000 = 46800 秒。

计算小时:

总秒数除以 3600(1 小时 = 3600 秒),得到小时数。

例如,46800 // 3600 = 13 小时。

计算剩余的分钟:

总秒数对 3600 取模,得到剩余的秒数。

剩余的秒数除以 60(1 分钟 = 60 秒),得到分钟数。

例如,46800 % 3600 = 0 秒,0 // 60 = 0 分钟。

计算剩余的秒:

剩余的秒数对 60 取模,得到秒数。

例如,0 % 60 = 0 秒。

  1. 代码中的转换逻辑

    将毫秒转换为秒

    total_seconds = milliseconds // 1000
    #milliseconds // 1000:将毫秒数除以 1000,得到总秒数。
    PYTHON

    计算小时、分钟和秒

    hours = (total_seconds // 3600) % 24
    minutes = (total_seconds % 3600) // 60
    seconds = total_seconds % 60 当然也可以seconds = (total_seconds%3600) % 60

    return f"{hours:02d}:{minutes:02d}:{seconds:02d}"

Ⅳ.时间戳

定义

  • 时间戳:记录时间的数字,单位可以是秒、毫秒等。---一般是毫秒

  • 参考时间 :通常是 Unix 纪元(1970-01-01 00:00:00 UTC)。

  • 用途:标记事件发生的时间,方便计算时间差。

*判断相邻毫秒时间戳小于1s---即两个相邻时间戳差 ≤ 1000 毫秒。

Ⅴ.文件读取

复制代码
with open("log.txt", "r") as file:
    lines = file.readlines()
  1. with open("log.txt", "r") as file::

    • open("log.txt", "r"):

      • 打开名为 "log.txt" 的文件。

      • "r":以只读模式(read)打开。

    • with ... as file::

      • 使用 with 语句,确保文件操作完后自动关闭。

      • file 是文件对象,代表打开的 "log.txt"。

  2. lines = file.readlines():

    • file.readlines():

      • 读取 file 的所有行。

      • 返回一个列表,每个元素是一行文本(包含换行符 \n)。

    • lines:

      • 变量,存储读取的行列表。

Ⅵ.堆

heap[0]----堆顶元素
将列表转换为最大堆

如果需要将现有列表转换为最大堆,可以使用 heapq.heapify(),同时将元素取反:

import heapq

原始列表

nums = [3, 1, 2]

将元素取反后转换为堆

heap = [-x for x in nums]

heapq.heapify(heap)

查看堆顶元素(取反还原)

max_item = -heap[0]

print("堆顶元素:", max_item) # 输出:3

弹出元素(取反还原)

max_item = -heapq.heappop(heap)

print("弹出元素:", max_item) # 输出:3

print("堆中剩余元素:", [-x for x in heap]) # 输出:[2, 1]

最大堆的常用操作

以下是最大堆的常用操作及其实现方式:

复制代码
1. 插入元素

heapq.heappush(heap, -item)
2. 弹出元素

max_item = -heapq.heappop(heap)
3. 查看堆顶元素

max_item = -heap[0]
4. 将列表转换为最大堆

heap = [-x for x in nums]
heapq.heapify(heap)

Ⅶ.math操作

Ⅷ.range()方法单独使用

Ⅸ.python 的异常输出

Ⅹ.for-else 和while-else

相关推荐
欧克小奥20 小时前
Floyd判圈算法(Floyd Cycle Detection Algorithm)
算法·floyd
熬了夜的程序员21 小时前
【LeetCode】83. 删除排序链表中的重复元素
算法·leetcode·链表
胖咕噜的稞达鸭21 小时前
AVL树手撕,超详细图文详解
c语言·开发语言·数据结构·c++·算法·visual studio
熊猫钓鱼>_>1 天前
Rust语言特性深度解析:所有权、生命周期与模式匹配之我见
算法·rust·软件开发·函数·模式匹配·异步编程·质量工具
芒果量化1 天前
Optuna - 自动调参利器&python实例
开发语言·python·算法·机器学习
麦麦大数据1 天前
D025 摩托车推荐价格预测可视化系统|推荐算法|机器学习|预测算法|用户画像与数据分析
mysql·算法·机器学习·django·vue·推荐算法·价格预测
阿林学习计算机1 天前
红黑树的实现
数据结构
CoovallyAIHub1 天前
IDEA研究院发布Rex-Omni:3B参数MLLM重塑目标检测,零样本性能超越DINO
深度学习·算法·计算机视觉
豐儀麟阁贵1 天前
4.4数组的基本操作
java·开发语言·数据结构·算法
无限进步_1 天前
【C语言】在矩阵中高效查找数字的算法解析
c语言·开发语言·数据结构·c++·其他·算法·矩阵