字符串统计(Python)
接收键盘任意录入,分别统计大小写字母、数字及其它字符数量,打印输出。
(笔记模板由python脚本于2024年11月02日 08:23:31创建,本篇笔记适合熟悉python字符串并懂得基本编程技法的coder翻阅)
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室

本文质量分:
本文地址: https://blog.csdn.net/m0_57158496/article/details/143445325
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆ 字符串统计
- 1、题目描述
- 2、解题逻辑
- 3、 代码实现
- 3.1 变量统计
- 3.2 sum(列表解析)
- 3.3 sum(生成器解析)
- 3.4 字典统计
- 4、ai也是经常“犯错”
- 4.1 遗漏信息
- 4.2 表述“不清”
- 5、完整源码(Python)
◆ 字符串统计
我之前也写过一篇解“字符串统计”小题的学习笔记:
- 练习:字符串统计(坑:f‘string‘报错)
地址:https://blog.csdn.net/m0_57158496/article/details/121723096
浏览阅读:5.5k
收藏:1
1、题目描述
题目描述截屏图片
1、编写函数,接收一个字符串,分别统计大写字母、小写字母、数字和其它字符的个数,并以元组形式返回结果。在主程序调用该函数并输出。
【题目来源于 CSDN 问答社区提问《字符串统计》】
解题代码运行效果
2、解题逻辑
-
a. 一般采用变量计数器。为每个统计项设立变量初值置0,遍历字符串时累加相应变量。
-
b. 字典key替代统计变量,用dict.get方法辅助累加其值。dict结构数据,代码更紧凑,操作更顺畅,这是一般统计数据结构的“最佳方式”。
ai学伴总结“我的观点”
3、 代码实现
3.1 变量统计
变量统计
def char_statistics(text: str) -> None:upper_count = 0lower_count = 0number_count = 0other_count = 0for char in text:if char.isupper():upper_count += 1elif char.islower():lower_count += 1elif char.isdigit():number_count += 1else:other_count += 1print(f"Upper case letters: {upper_count}")print(f"Lower case letters: {lower_count}")print(f"Numbers: {number_count}")print(f"Other characters: {other_count}")# 示例文本
sample_text = "Hello World! 12345"# 调用函数进行统计
char_statistics(sample_text)
ai是采用的“变量输出”,如要符题,只需将统计数据“组建”成tuple对象,修改输出语句就可以。如:
# 前面代码保持不变keys = ('upper_count', 'lower_count', 'number_count', 'other_count')counter = [(k, v) for k,v in zip(keys, (upper_count, lower_count, number_count, other_count))] # 列表解析式解析成“键-值”对列表# 原print() 代码不变return tuple(counter) # 列表转换成元组返回# 示例文本
sample_text = "Hello World! 12345"# 调用函数进行统计
print(f"\n\n元组统计结果:\n{char_statistics(sample_text)}\n") # 以接收返回值的方式调用函数
运行效果截屏图片
3.2 sum(列表解析)
列表解析统计
upper_count = sum([1 if char.isupper() else 0 for i in text])lower_count = sum([1 if char.islower() else 0 for i in text])number_count = sum([1 if char.isdigit() else 0 for i in text])other_count = len(text) - upper_count - lower_count - number_count
3.3 sum(生成器解析)
生成器解析统计
upper_count = sum(1 for char in text if char.isupper())lower_count = sum(1 for char in text if char.islower())number_count = sum(1 for char in text if char.isdigit())other_count = len(text) - upper_count - lower_count - number_count
生成器解析,代码更简洁且少占用内存。
3.4 字典统计
字典统计
字典统计的代码脚本,请往后翻或者直接选择文章目录“完整源码”跳转。😋
贴图
4、ai也是经常“犯错”
AI虽然精准,但它也跟“我们”一样,时常迷糊,时有前言不搭后语的情形。😋这是我们需要知悉的,智能的ai,不会“全对”!🧐
4.1 遗漏信息
截屏图片
4.2 表述“不清”
截屏图片
5、完整源码(Python)
(源码较长,点此跳过源码)
#!/usr/bin/env python3def char_count(s: str) -> tuple | dict:''' 字符统计 '''counts = {} # 统计字典for char in s:if char.isupper():counts['upper'] = counts.get('upper', 0) + 1elif char.islower():counts['lower'] = counts.get('lower', 0) + 1elif char.isdigit():counts['number'] = counts.get('number', 0) + 1else:counts['other'] = counts.get('other', 0) + 1chars = tuple((k, v) for k,v in counts.items()) # 为达题目要求,特意返回统计数据元组return chars, counts # 直接返回字典是更便于明细列表输出def main() -> None:''' 主程序 '''text = input('\n\n请输入字符串:')chars, counter = char_count(text) # 调用模块函数统计字符# 分别格式化统计数据upper_str = f"大写字母:{counter.get('upper', 0):>2}个"lower_str = f"小写字母:{counter.get('lower', 0):>2}个"number_str = f"数字:{counter.get('number', 0):>2}个"other_str = f"其它字符:{counter.get('other', 0):>2}个"# 统筹输出(元组和明细)print(f"\n\n输出:\n\n统计元组:{chars}\n\n{'':-^42}\n\n{lower_str:>22}\n{upper_str:>22}\n{number_str:>24}\n{other_str:>22}\n\n{'':>16}共计{len(text)}个字符\n{'':-^42}")if __name__ == '__main__':main()
ai学伴点评代码
低版本python解释器函数返回联合类型示例
from typing import Dict, Tuple, Uniondef char_count(s: str) -> Union[Tuple[Tuple[str, int]], Dict[str, int]]:# 函数体保持不变
上一篇: Python中的字符串“不可改变。/可以改变?”(Python中,规定字符串是“不可变”类型,字符串方法可以“重写”字符串。Python最终让您明白,“字符串不可改变”)
下一篇:
我的HOT博:
本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。
-
001
标题:让QQ群昵称色变的神奇代码
(浏览阅读 5.9w )
地址:https://blog.csdn.net/m0_57158496/article/details/122566500
点赞:25 收藏:86 评论:17
摘要:让QQ昵称色变的神奇代码。
首发:2022-01-18 19:15:08
最后编辑:2022-01-20 07:56:47 -
002
标题:Python列表(list)反序(降序)的7种实现方式
(浏览阅读 1.1w )
地址:https://blog.csdn.net/m0_57158496/article/details/128271700
点赞:8 收藏:35 评论:8
摘要:Python列表(list)反序(降序)的实现方式:原址反序,list.reverse()、list.sort();遍历,全数组遍历、1/2数组遍历;新生成列表,resersed()、sorted()、负步长切片[::-1]。
首发:2022-12-11 23:54:15
最后编辑:2023-03-20 18:13:55 -
003
标题:pandas 数据类型之 DataFrame
(浏览阅读 9.7k )
地址:https://blog.csdn.net/m0_57158496/article/details/124525814
点赞:7 收藏:36
摘要:pandas 数据类型之 DataFrame_panda dataframe。
首发:2022-05-01 13:20:17
最后编辑:2022-05-08 08:46:13 -
004
标题:个人信息提取(字符串)
(浏览阅读 8.2k )
地址:https://blog.csdn.net/m0_57158496/article/details/124244618
点赞:2 收藏:15
摘要:个人信息提取(字符串)_个人信息提取python。
首发:2022-04-18 11:07:12
最后编辑:2022-04-20 13:17:54 -
005
标题:Python字符串居中显示
(浏览阅读 7.6k )
地址:https://blog.csdn.net/m0_57158496/article/details/122163023
评论:1 -
006
标题:罗马数字转换器|罗马数字生成器
(浏览阅读 7.5k )
地址:https://blog.csdn.net/m0_57158496/article/details/122592047
摘要:罗马数字转换器|生成器。
首发:2022-01-19 23:26:42
最后编辑:2022-01-21 18:37:46 -
007
标题:回车符、换行符和回车换行符
(浏览阅读 6.0k )
地址:https://blog.csdn.net/m0_57158496/article/details/123109488
点赞:2 收藏:3
摘要:回车符、换行符和回车换行符_命令行回车符。
首发:2022-02-24 13:10:02
最后编辑:2022-02-25 20:07:40
截屏图片
(此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)

精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
- 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)
相关文章:

字符串统计(Python)
接收键盘任意录入,分别统计大小写字母、数字及其它字符数量,打印输出。 (笔记模板由python脚本于2024年11月02日 08:23:31创建,本篇笔记适合熟悉python字符串并懂得基本编程技法的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网…...

NVR小程序接入平台/设备EasyNVR多个NVR同时管理视频监控新选择
在数字化转型的浪潮中,视频监控作为安防领域的核心组成部分,正经历着前所未有的技术革新。随着技术的不断进步和应用场景的不断拓展,视频监控系统的兼容性、稳定性以及安全性成为了用户关注的焦点。NVR小程序接入平台/设备EasyNVR,…...

怎样能把图片做压缩处理?学会4款在线工具高效压缩图片
随着现在图片质量不断的提高,导致图片的大小也越来越大,很多的网上平台只能上传比较小的图片,那么可以使用压缩图片或者图片改尺寸的方式来修改图片大小,那么图片压缩的操作技巧是什么样的呢?本文将带大家了解4个操作简…...

ZooKeeper 客户端API操作
文章目录 一、节点信息1、创建节点2、获取子节点并监听节点变化3、判断节点是否存在4、客户端向服务端写入数据写入请求直接发给 Leader 节点写入请求直接发给 follow 节点 二、服务器动态上下线监听1、监听过程2、代码 三、分布式锁1、什么是分布式锁?2、Curator 框架实现分布…...
常用滤波算法(一)-限幅滤波法
文章目录 一、限幅滤波法原理二、C语言实现限幅滤波法三、代码解析定义限制值:限幅滤波函数:模拟获取新数据:主函数: 四、结论 限幅滤波法 限幅滤波法,作为一种简单而有效的滤波方法,通过限制信号的幅值范围…...

江协科技STM32学习- P33 实验-软件I2C读写MPU6050
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...

BusHound工具的使用-调试USB
12 1.Capture(捕捉按钮)、2.Save(保存按钮)、3.Setting(设置要监听的,输入输出)、4.Device(选择要监听的设备)、5.Help(帮助按钮)、6.Exit(退出按钮)。 一、Capture页面 1.Device 表示是29设备端口,打印机。 2.Phase,各类协议,…...

Hadoop生态圈框架部署(四)- Hadoop完全分布式部署
文章目录 前言一、Hadoop完全分布式部署(手动部署)1. 下载hadoop2. 上传安装包2. 解压hadoop安装包3. 配置hadoop配置文件3.1 虚拟机hadoop1修改hadoop配置文件3.1.1 修改 hadoop-env.sh 配置文件3.3.2 修改 core-site.xml 配置文件3.3.3 修改 hdfs-site…...

Spring Boot 与 Vue 共铸卓越采购管理新平台
作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…...
leetcode3. Longest Substring Without Repeating Characters
Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abcabcbb” Output: 3 Explanation: The answer is “abc”, with the length of 3. Example 2: Input: s “bbbbb” Output: 1 Explanation: The ans…...
Mongodb使用视图连接两个集合
您可以使用 $lookup 为两个集合创建一个视图,然后对该视图运行查询。应用程序可以查询视图,而无需构建或维护复杂的管道。 例子 创建两个样本集合 inventory 和 orders: db.inventory.insertMany( [{ prodId: 100, price: 20, quantity: 1…...

SIP是什么?
SIP(Session Initiation Protocol,会话启动协议)是一个用于建立、更改和终止多媒体会话的应用层控制协议,其中的会话可以是IP电话、多媒体会话或多媒体会议。 SIP是IETF多媒体数据和控制体系结构的核心协议(最新RFC文档…...
Day 39 || 01背包、416. 分割等和子集
01背包 题目链接:卡码网第46题 二维解题思路:需要建立一个i行k列的dp数组,i表示每个物品,k代表容量,初始化数组子一列为0,第一行从背包开始能够放入起始为价值,其他都为0。for双循环先背包后物…...
调用detr-resnet-50进行目标检测
from transformers import DetrImageProcessor, DetrForObjectDetection import torch from PIL import Imageimage = Image.open("1.jpg") torch.set_default_device("cuda"...
Chromium 中chrome.fontSettings扩展接口定义c++
一、chrome.fontSettings 使用 chrome.fontSettings API 管理 Chrome 的字体设置。 权限 fontSettings 要使用 Font Settings API,您必须在扩展程序中声明 "fontSettings" 权限 清单。例如: {"name": "My Font Settings E…...
在Unity游戏开发在面试时会面试哪些内容?
1、请描述游戏动画有几种,以及其原理。 关键帧动画:每一帧动画序列当中包含了顶点的空间位置信息以及改变量,然后通过插值运算,得出动画效果。选中某一游戏对象,创建animation,添加属性Transform࿰…...
刘艳兵-DBA022-以下关于Oracle半连接的描述,哪些是正确的?
以下关于Oracle半连接的描述,哪些是正确的? A SQL中的NOT EXISTS子查询,通常会被转换为对应的半连接。 B SQL中的IN子查询,通常会被转换为对应的半连接。 C 半连接会去重 D SQL中的EXISTS子查询,通常会被转…...

人工智能与伦理:我们应该如何平衡科技与人性?
内容概要 在这个瞬息万变的时代,人工智能的迅猛发展让我们面对前所未有的伦理困境。科技进步带来了便利,但同时也亟需我们反思如何对待人性。尤其是在实现算法透明性时,我们要确保每一个决策背后都能被理解与追溯,这不仅是对技术…...

CRON组件一个复杂的一个简单的
CRON组件一个复杂的一个简单的 一个是复杂点的一个是简单点。 1.以简单的为例使用: 父组件 import CronSimple from "/views/xxx/components/cron-simple/index.vue";components: {CronSimple}<el-dialog title"调度CRON"v-if"cronV…...

自定义日志打成jar包引入项目后不生效
背景:写了一个请求响应日志包,打包后在另一个项目使用pom引入后不生效 package com.example.qqllog.aspect;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean;…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...