python | Incorrect lottery numbers 存储格式正确的彩票号码

2023-11-23 01:01

本文主要是介绍python | Incorrect lottery numbers 存储格式正确的彩票号码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Incorrect lottery numbers 存储格式正确的彩票号码

The file lottery_numbers.csv containts winning lottery numbers in the following format:

文件内容如下:

Sample data
week 1;5,7,11,13,23,24,30
week 2;9,13,14,24,34,35,37
…etc…

每一行都以周数开头,以1-39的7个数字结尾。

但是现在文件发生了一些乱码现象,具体出现的error如下
在这里插入图片描述

Please write a function named filter_incorrect(), which creates a file called correct_numbers.csv.


这是我自己写的代码:

def filter_incorrect():open("correct_numbers.csv", 'w').close()# 保证了文件内容不会被重复写入。with open("lottery_numbers.csv") as original_file:  # 开始读彩票文件for line in original_file:line1 = line.strip()line2 = line1.replace(";", ',')l_content = line2.split(",")  # 获得数组,内容是每周所有单独的元素l_number = l_content[1:]  # 数组,内容是每周彩票号码l_week = l_content[0].split()  # 数组,[0]是week,[1]第x周if len(l_number) == 7:if l_week[1].isdigit():test = []# test用来保证该周的所有彩票号都符合要求for num in l_number:if num.isdigit() and 1 <= int(num) <= 39:test.append("True")else:test.append("False")if "False" not in test:with open("correct_numbers.csv", 'a') as correct_file:correct_file.write(line)# 确保号码、周数全部正确以后,写入if __name__ == "__main__":filter_incorrect()

刚刚回溯的时候发现没有写确保不重复的函数,但是误打误撞的居然对了,巧合巧合。另外,这一章内容主要是讲try-catch,但是我初学,完全没办法灵活运用,只好用if-else解决所有问题了。

接下来让我们看看标准答案。

def filter_incorrect():with open("lottery_numbers.csv") as input_file, open("correct_numbers.csv", "w") as result_file:  # 一次性都打开了,方便呐!for row in input_file:parts = row.strip().split(";")  # 原来还可以叠加使用!if len(parts) != 2: continueweek = parts[0].split(" ")error = False# 初始化error,error用来判断内容是否出错。if len(week) != 2 or week[0] != "week":error = Truetry:mika = int(week[1])except:error = True# 标答用了try, 我用的是if + .isdigit(). 用try是因为如果week[1]不是数字的话,会报错。再用except继续进行。但是让error变成了True.number_list = parts[1].split(",")if len(number_list) != 7:error = True# 这里不用try的原因是,即使数组长度不等于7,程序本身也不会报错。# numbers already listed --> to find out duplicateslisted = []for item in number_list:try:number = int(item)if number < 1 or number > 39 or number in listed:error = Truelisted.append(number)# number在范围以内,以及不重复的话,就加入到listed数组。except:error = Trueif not error:  # not True是false,无法写入。error为False时写入。result_file.write(row)

总结(可能不对):

  1. 只有像判断内容是不是整数类型时,可能会报错,此时用try-except。比如number = int(item),但是像判断长度和数值范围这种并不报错的内容的话,直接使用if-else
  2. 辅助argument:error.
  3. except里面不能直接pass,否则函数直接停止运行,无法进行for循环。

题源:Helsinki, part 6

这篇关于python | Incorrect lottery numbers 存储格式正确的彩票号码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/jojoneverfail/article/details/125375222
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/414200

相关文章

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

如何正确识别一台POE交换机的好坏? 选购可靠的POE交换机注意事项

《如何正确识别一台POE交换机的好坏?选购可靠的POE交换机注意事项》POE技术已经历多年发展,广泛应用于安防监控和无线覆盖等领域,需求量大,但质量参差不齐,市场上POE交换机的品牌繁多,如何正确识... 目录生产标识1. 必须包含的信息2. 劣质设备的常见问题供电标准1. 正规的 POE 标准2. 劣质设

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

Python实现中文大写金额转阿拉伯数字

《Python实现中文大写金额转阿拉伯数字》在财务票据中,中文大写金额被广泛使用以防止篡改,但在数据处理时,我们需要将其转换为阿拉伯数字形式,下面我们就来看看如何使用Python实现这一转换吧... 目录一、核心思路拆解二、中文数字解析实现三、大单位分割策略四、元角分综合处理五、测试验证六、全部代码在财务票

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢