python实现字符串中字符分类及个数统计


Posted in Python onSeptember 28, 2018

输入一个字符串,分别统计出其中英文字母、空格、数字和其它字符的个数,本文给出解决方法

编写思路:

1、字符串的遍历,和列表类似,可以把字符串当做元素都是一个字符的一个字符列表,它可以和列表有公共的语法
2、分不同的类别,若有符合条件的字符直接在类别数上加1就可以

初始代码:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "请输入字符串:"
s=raw_input()
for char in s:
  if char>'a' and char<'z' or char>'A' and char<'Z':
    letter+=1
  elif 0<=char<=9:
    number+=1
  elif char==[' ','  ']:
    space+=1
  else:
    symbol+=1
print "字母数量,数字数量,空格数量,其他字符数量分别为:"
print letter,number,space,symbol

错误之处:

1、if char>='a' and char=<'z' or char>='A' and char=<'Z':可以写成if 'a'<=char<='z' or 'A'<=char<='Z':更加简洁;
2、elif 0<=char<=9:也应该是'0'<=char<='9',字符(字符串)必须加引号‘  'or  ”  “,但举例如下:

print '0'<='2ab'<='9'1

运行结果输出的是True

- - -在Python中没有“字符”的概念,哪怕是char都是一个字符串,Python对于字符串不会敏感分析是不是只有一个字符,而是都可以进行判断。
- - -上述例子的‘2ab'并不是一个数字,而是一个字符串,在本题中虽然没有问题,因为已经取出单个字符串了。但是很多情况对字符串的判断需求非常严格,所以要严格判断它确实是一个字符串,使用isdigit
- - -isdigit()方法,可以判断一个字符串是不是数字,即如果一个字符串里的所有字符都是数字,它才是True,否则是False

3、elif char==[' ','    ']:应该是elif char in [' ',' ']:

[ ]是列表,所以应用in。in不仅可以用在列表,元组,字典都能用;用在元组跟列表是一样的意思;用在字典里,意思是有没有这个键

4、elif虽然与else if用法相同,但是不能直接写成else if,因为python语法规定,else后面必须要有冒号(复合语句),直接写个if就会报错了,可写为:

else:
  if char.isdigit():
      number+=1123

5、输出换成print letter+' '+number+' '+space+' '+symbol

会报错TypeError: unsupported operand type(s) for +: 'int' and 'str'
一个是整形,一个是字符串,不能直接加,需要格式化输出,格式为:print “%X”%变量

修改后代码:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "请输入字符串:"
s=raw_input()
for char in s:
  if 'a'<=char<='z' or 'A'<=char<='Z':
    letter+=1
  elif char.isdigit():
    number+=1
  elif char in [' ',' ']:
    space+=1
  else:
    symbol+=1
print "字母数量,数字数量,空格数量,其他字符数量分别为:"
print letter,number,space,symbol

格式化输出的修改代码如下:

# -*- coding:utf-8 -*-
letter=0
number=0
space=0
symbol=0
print "请输入字符串:"
s=raw_input()
for char in s:
  if 'a'<=char<='z' or 'A'<=char<='Z':
    letter+=1
  elif char.isdigit():
      number+=1
  elif char in [' ',' ']:
    space+=1
  else:
    symbol+=1

tempTuple=(letter,number,space,symbol)
print "字母数量,数字数量,空格数量,其他字符数量分别为:%d,%d,%d,%d"%tempTuple

格式为print “数字数量为:%d”%number
其中:%d是格式,表示想输出一个整型变量,number是对应替换这个格式的变量,意思是对应%d的输出。若有多个格式,记住变量是按顺序逐个匹配的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python中的is和id用法分析
Jan 26 Python
Python使用turtule画五角星的方法
Jul 09 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python实现查询某个目录下修改时间最新的文件示例
Aug 29 Python
python安装scipy的方法步骤
Jun 26 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
python中使用zip函数出现错误的原因
Sep 28 #Python
python中的for循环
Sep 28 #Python
Django migrations 默认目录修改的方法教程
Sep 28 #Python
python数据结构之线性表的顺序存储结构
Sep 28 #Python
python实现顺序表的简单代码
Sep 28 #Python
linux安装Python3.4.2的操作方法
Sep 28 #Python
python求质数的3种方法
Sep 28 #Python
You might like
php中看实例学正则表达式
2006/12/25 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
python 实现两个npy档案合并
2020/07/01 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
给男朋友的道歉信
2014/01/12 职场文书
股东协议书
2014/04/14 职场文书
冬季安全检查方案
2014/05/23 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
九年级历史教学反思
2016/02/19 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
总结Python变量的相关知识
2021/06/28 Python
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android