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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
python简单实现基数排序算法
May 16 Python
Python的Django框架中的Context使用
Jul 15 Python
基于Python实现文件大小输出
Jan 11 Python
django基础之数据库操作方法(详解)
May 24 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python list元素为tuple时的排序方法
Apr 18 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python清空命令行方式
Jan 13 Python
Django数据库(SQlite)基本入门使用教程
Jul 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中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
python实现二叉查找树实例代码
2018/02/08 Python
python实现一组典型数据格式转换
2018/12/15 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
公司面试感谢信
2014/02/01 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
艾滋病宣传标语
2014/06/25 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
OpenCV全景图像拼接的实现示例
2021/06/05 Python
在js中修改html body的样式
2021/11/11 Javascript
Vue监视数据的原理详解
2022/02/24 Vue.js
python实现学生信息管理系统(面向对象)
2022/06/05 Python