华为机考入门python3--(19)牛客19- 简单错误记录

news/2024/5/18 12:16:37

分类:字符串

知识点:

  1. 分割字符串    my_str.split('\\')

  2. 字符串只保留最后16位字符      my_str[-16:]

  3. 列表可以作为队列、栈

    添加元素到第一个位置 my_list.insert(0, elem)

    增加元素到最后一个位置 my_list.append(elem)

    删除第一个   my_list.pop(0)

    删除最后一个 my_list.pop()

题目来自【牛客】

图片


import sysclass ErrorLogger:  def __init__(self):  self.records = []  # 用于存储错误记录  self.ignore = [] # 排除的记录def log_error(self, filename, line_number):  # 去除文件名中的路径,只保留文件名  filename = filename.split('\\')[-1]  # 如果文件名超过16个字符,只保留最后16个字符  if len(filename) > 16:  filename = filename[-16:]if (filename + "_" + line_number) in self.ignore:return# 检查是否已经记录过相同的错误  for index, record in enumerate(self.records):if record['filename'][-16:] == filename and record['line_number'] == line_number:self.records[index]['count'] += 1  return  # 如果没有记录过相同的错误,添加新的记录  self.records.append({'filename': filename, 'line_number': line_number, 'count': 1})  # 保持记录列表最多8条记录  if len(self.records) > 8:  # print(self.records)deleted_record = self.records.pop(0)  # 移除最早的记录  self.ignore.append(deleted_record['filename'] + "_" + deleted_record['line_number'])def print_records(self):  # print(self.records)for record in self.records:  print(f"{record['filename']} {record['line_number']} {record['count']}")if __name__ == "__main__":  # 创建ErrorLogger实例  logger = ErrorLogger()  # 输入错误信息,每行一个错误信息,包括带路径的文件名和行号,以空格隔开  for line in sys.stdin:  error_msg = line.split('\n')[0]filename, line_number = error_msg.split(' ')  # 分割文件名和行号  logger.log_error(filename, line_number)  # 记录错误信息  logger.print_records()  # 打印最新的8条错误记录

 by 软件工程小施同学


http://www.mrgr.cn/p/47646618

相关文章

VMware虚拟机安装Centos-7.9

VMware虚拟机安装Centos-7.9 创作不易,点赞关注一下吧 1.安装VMware Workstation Pro 大家根据自己的实际情况安装合适版本的VMware Workstation Pro,具体的安装推荐及各版本的下载链接大家可以看我之前发布的一篇博客:VMware Workstation Pro各版本下载链接汇总(特全!!!…

精品UI知识付费系统源码 响应式视频教程知识付费软件下载网站模板

这是一款知识付费平台模板,后台可上传本地视频,批量上传视频连接, 视频后台可设计权限观看,免费试看时间时长,会员等级观看,付费观看等功能, 也带软件app权限下载,帮助知识教育和软…

JavaWeb--1.Servlet

Servlet&#xff08;基础&#xff09; 1、配置依赖&#xff1a; ​ 在pom.xml文件中加入相关依赖 <dependencies><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0&l…

华为OD机试 - 密码解密(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

Github入门

GitHub 入门指南&#xff1a;从零开始学习使用 GitHub GitHub 是全球最大的代码托管平台之一&#xff0c;不仅是开发者们交流与协作的重要场所&#xff0c;也是学习与分享优秀代码的宝库。无论你是一位新手开发者还是经验丰富的专家&#xff0c;GitHub 都是你必须掌握的利器之…

TCP/IP协议族中的TCP(二):解析其关键特性与机制

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统 滑动窗口 在前面我们讨论了确认应答策略, 对每一个发送的数据段, 都要给一个ACK确认应答. 收到ACK后再发送下一个数据段.这样…

基于node.js+css+html+mysql博客系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

WebSocket 全面解析

&#x1f31f; 引言 WebSocket&#xff0c;一个让实时通信变得轻而易举的神器&#xff0c;它打破了传统HTTP协议的限制&#xff0c;实现了浏览器与服务器间的全双工通信。想象一下&#xff0c;即时消息、在线游戏、实时股票报价…这一切都离不开WebSocket的魔力&#x1f4ab;。…

《QT实用小工具·五十二》文本或窗口炫酷有趣的滚动条——果冻条

1、概述 源码放在文章末尾 该项目实现了文本或窗口纤细的滚动条——果冻条 一个可以像弓弦一样拉出来&#xff0c;并且来回弹动的普通滚动条。 思路为此&#xff0c;但发现实际效果更像条状果冻&#xff0c;并且略有谐音&#xff0c; 故&#xff0c;称之为——“果冻条”&am…

【研发日记】Matlab/Simulink避坑指南(十一)——Delay周期Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(六)——字节分割Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(七)——数据溢出钳位Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指…

gitlab设置保护分支

gitlab设置保护分支方法 进入代码仓库首页&#xff0c;找到settings下的repository并点击进入 找到Protected Branches 下的Exoand按钮&#xff0c;并点击展开 可以看到已经存在默认的保护分支&#xff0c;通常是master/main分支&#xff0c;也可以添加新的保护分支 新建保护分…

团队作业5——测试与发布(Alpha版本)

这个作业属于哪个课程 软件工程2024-双学位 (广东工业大学)这个作业要求在哪里 团队作业5——测试与发布(Alpha版本)一、Alpha版本测试报告 0. 进行测试 登录部分:失物招领部分:评价部分:1. 发现的问题 ①看不到自己的评论,也无法看到他人的评论 ②使用失物招领界面添加列…

IDEA2024版本控制台乱码怎么解决?

在使用最新版本的IDEA时&#xff0c;可能会遇到控制台输出乱码问题&#xff1f; 在网上找了很多办法&#xff0c;修改了IDEA的vmoptions文件也没有用,最后发现原来是要修改这里 Setting>>Build&#xff0c;Execution,Deployment>>Runnr中的VM Options配置&#xf…

[图解]被严重污染的领域专家

0 00:00:00,740 --> 00:00:04,610 今天我们来说一下领域专家 1 00:00:05,480 --> 00:00:06,920 这个概念 2 00:00:08,460 --> 00:00:13,180 这个概念现在已经被严重污染了 3 00:00:16,080 --> 00:00:21,170 你看&#xff0c;这是来自一个领域驱动设计课程的资料…

240503-关于Unity的二三事

240503-关于Unity的二三事 1 常用快捷键 快捷键描述CtrlP播放/停止Ctrl1打开Scene窗口Ctrl2打开Game窗口Ctrl3打开Inspect窗口Ctrl4打开Hierarchy窗口Ctrl5打开Project窗口Ctrl6打开Animation窗口 2 关联VisualStudio2022 3 节约时间&#xff1a;将最新声明的参数移动到最上…

Centos7 安装Git、使用

Centos7 安装Git 一、安装步骤1.1 查看版本1.2 卸载1.3 安装 二、创建仓库2.1 新增仓库2.2 新增配置项 三、管理文件3.1 文件创建3.2 文件修改、add、commit3.3 tree结构探索 四、分支4.1 创建分支&#xff1a;4.2 查看分支4.3 切换分支4.4 删除分支4.5 合并冲突 一、安装步骤 …

企业计算机服务器中了devicdata勒索病毒怎么处理,devicdata解密数据恢复

网络技术的不断应用与发展&#xff0c;加快了社会进步的步伐&#xff0c;越来越多的企业利用网络开展各项工作业务&#xff0c;网络为企业提供了极大便利&#xff0c;大大提高了生产效率&#xff0c;网络数据安全问题成为了众多企业关心的主要话题。近日&#xff0c;云天数据恢…

【C++STL详解(五)】--------list的介绍与使用

目录 前言 一、list的介绍 二、list的使用 Ⅰ.默认成员函数 1、构造函数 2、赋值重载 3、析构函数 Ⅱ、容量 1.size() Ⅲ、迭代器与遍历 1.beginend (正向迭代器) 2.rbeginrend (反向迭代器) 3.front 4.back Ⅳ、增删查改 1.push_front 2.pop_front 3.push_b…

西门子:HMI小游戏-灰太狼与喜羊羊

DB块&#xff1a; HMI界面&#xff1a; 实际视频&#xff1a; 抓羊小游戏

深度学习500问——Chapter08:目标检测(6)

文章目录 8.3.7 RetinaNet 8.3.7 RetinaNet 研究背景 Two-Stage 检测器&#xff08;如Faster R-CNN、FPN&#xff09;效果好&#xff0c;但速度相对慢。One-Stage 检测器&#xff08;如YOLO、SSD&#xff09;速度快&#xff0c;但效果一般。 作者对one-stage检测器准确率不高…