第1关:统计文件中的字符

open(name[, mode[, buffering]])函数可以打开诸如txt,csv等格式的文件。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如下定义read_file()函数:

 
  1. def read_file(file):
  2. """接收文件名为参数,读取文件中的数据到字符串中,返回字符串"""
  3. with open(file, 'r', encoding='utf-8') as text: # 创建文件对象
  4. txt =text.read() # 读文件为字符串
  5. return txt # 返回字符串

上面的函数read_file(file)可以读取名为file的文件内容,以字符串形式返回txt,请继续编程统计字符串txt中大写字母、小写字母、数字、空格和其它字符的数量。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

提示:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

ch.isupper()函数判断字符ch是否为大写字母,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

ch.islower()函数判断字符ch是否为小写字母,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

ch.isdigit()函数判断字符ch是否为数字,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

ch.isspace()函数判断字符ch是否为空白字符,包括空格,制表符,换行符,回车符,垂直制表符等,返回True/False。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

判断空格可用if ch==' ':判断是否为空格字符串' '‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

使用upper,lower,digit,space,other五个变量代表不同种类的字符个数,设定初值为0,在循环过程中按照判断结果进行累加。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

函数返回时使用 return upper, lower, digit, space, other语句,返回值为元组类型。

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入为一行,是一个文本文件名,如example1.txt

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出为一行,是对名为example1.txt文件的内容进行分类统计后的结果, 输出形如: 大写字母m个,小写字母n个,数字o个,空格p个,其他q个 具体格式见示例。

示例1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:c.txt 输出:大写字母6个,小写字母6个,数字6个,空格5个,其他5个 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 平均代码量 10 行

import stringdef read_file(file):"""接收文件名为参数,读取文件中的数据到字符串中,返回这个字符串"""with open(file, 'r', encoding='utf-8') as f:return f.read()def classify_char(txt):"""接收字符串为参数,依序返回大写字母、小写字母、数字、空格、和其他字符数量"""upper, lower, digit, space, other = 0, 0, 0, 0, 0for c in text:if c.isupper():upper+=1elif c.islower():lower+=1elif c.isdigit():digit+=1elif c==" ":space+=1else:other+=1
#####return upper, lower, digit, space, otherif __name__ == '__main__':filename = input()              # 读入文件名text = read_file(filename)      # 调用函数读文件中的内容为字符串classify = classify_char(text)  # 调用函数分类统计字符数量print('大写字母{}个,小写字母{}个,数字{}个,空格{}个,其他{}个'.format(*classify))

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之权限管理和组

一,ACL权限 1.1,什么是acl权限? ACL是Access Control List的缩写,即访问控制列表。可以通过下列的实例来理解ACL的作用: 思考如何实现如下的权限控制: 每个项目成员在有一个自己的项目目录,…

SMART PLC升降温速率计算

1、单自由度增量式PID温度控制系统框图(数字量PWM输出) https://rxxw-control.blog.csdn.net/article/details/136732932https://rxxw-control.blog.csdn.net/article/details/136732932 1、温度监测1 2、温度监测2 待续...

Windows Terminal配置 美化

Windows 终端自定义提示符设置 | Microsoft Learn 安装PowerShell7 在 Windows 上安装 PowerShell - PowerShell | Microsoft Learn 设置默认为 PowerShell7 安装 在powerShell 开启远程权限 Set-ExecutionPolicy RemoteSigned -scope CurrentUserscoop 执行 iwr -useb ht…

[BX]和loop指令

文章目录 [BX]和loop指令1 [bx]2 Loop指令3 在Debug中跟踪用loop指令实现的循环程序4 Debug和汇编编译器Masm对指令的不同处理5 loop和[bx]的联合应用6 段前缀7 一段安全的空间8 段前缀的使用 [BX]和loop指令 1 [bx] 我们用[bx]表示一个内存单元,它的段地址默认在…

腾讯云服务器多少钱一个月?5元1个月,这价格没谁了

2024腾讯云服务器多少钱一个月?5元1个月起,腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月,8核32G22M配置115元一个月、345元3个月,腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

力扣1. 两数之和

思路:用一个map存放 已遍历过的元素和下标; 若当前元素是nums[i], 且该元素的另一半 target-nums[i] 在已遍历过的map里面,则返回两个元素的下标; class Solution {public int[] twoSum(int[] nums, int target) {int[] ans new…

BFS模板

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、173. 矩阵距离(acwing)二、5475 聚会 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着…

5年经验之谈 —— 总结自动化测试与性能测试的区别!

很多刚刚接触自动化测试和性能测试的同学感觉性能测试和自动化测试是没什么区别的,就像小编刚刚接触自动化测试和性能测试的时候一样,区别就是:自动化测试是一个用户在测试,而性能测试需要并发,需要设计各种场景。测试…

单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制,具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速…

Vulnhub靶机渗透:DC-7打靶记录

前言 自信自强,来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出,梅花香自苦寒来;任何美好理想,都离不开筚路蓝缕、手胼足胝的艰苦奋斗! 靶场介绍 DC-7是一个初中级的靶场,需要具备以下前置知识:…

0009、ts的类型断言

类型断言(Type Assertion)是 TypeScript 中的一种特性,允许开发者在某些情况下手动指定变量的类型。它的主要使用场景是在开发者明确知道某个值的类型,但 TypeScript 编译器无法自动推断出来时,用来告诉编译器该值的确切类型。 在 TypeScrip…

GPT能复制人类的决策和直觉吗?

GPT-3能否复制人类的决策和直觉? 近年来,像GPT-3这样的神经网络取得了显著进步,生成的文本几乎与人类写作内容难以区分。令人惊讶的是,GPT-3在解决数学问题和编程任务方面也表现出色。这一显著进步引发了一个问题:GPT…

ES6中删除对象属性的方法

ES6中删除对象属性的方法 文章目录 ES6中删除对象属性的方法1. delete方法删除(单个)1. 删除方法12. 删除方法2 2. Reflect.deleteProperty删除(单个)3. 解构赋值删除(批量) 1. delete方法删除(单个) delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它…

计算机缺失msvcp110.dll如何修复,多种修复方法教给你

当电脑系统中msvcp110.dll文件丢失时,可能会对计算机的正常运行产生一系列显著的影响。msvcp110.dll是Microsoft Visual C Redistributable Package的一部分,这个动态链接库文件对于许多基于Windows的应用程序至关重要,尤其是一些使用C编译器…

Java小练--接收用户输入的数字,判断是否为质数;输出1-100内的所有质数

首先要先了解质数的概念: 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数 (规定:1既不是质数,也不是余数) 使用两个方法来解决这个问题: 方法一:暴力迭代法 import java.util.Scan…

jenkins 连接harbor 推送镜像

x509: certificate relies on legacy Common Name field, use SANs instead docker 登录harbor https 报错

深入了解提示词工程:原理、实践与应用

一、引言 在人工智能领域,尤其是自然语言处理(NLP)任务中,大语言模型如GPT系列已经成为了重要的工具。然而,要充分发挥这些模型的潜力,我们需要掌握一种名为提示词工程(Prompt Engineering&…

什么是CPQ?CPQ报价管理软件面向制造企业快速报价解决方案

什么是CPQ? CPQ生产配置报价系统是面向生产加工企业,为企业市场部门提供快速报价的辅助系统,和配置报价系统不同的是生产报价系统成本的组成并不是标准的产品成本,其成本可能包含原材料成本、原材料损耗、制造成本、包装成本、运…

YOLOv9改进策略:卷积魔改 | AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文改进内容: YOLOv9如何魔改卷积进一步提升检测精度?AKConv 通过不规则卷积运算完成高效特征提取的过程,为卷积采样形状带来更多探索选择。 AKConv可以作为即插即用的卷积运算来替代卷积运算来提高…