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

2024-05-04 06:20

本文主要是介绍华为机考入门python3--(19)牛客19- 简单错误记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分类:字符串

知识点:

  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 软件工程小施同学

这篇关于华为机考入门python3--(19)牛客19- 简单错误记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958515

相关文章

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把