【Python】【demo实验18】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】
原题:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
(本题暂时不支持中文字符及汉字)
我的代码:
#!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 a = input("please input string:\n") space_ = 0 number_ = [] EnglishLetter = [] otherString = [] for i in a: if i == " ": #空格比较特殊,先判断空格 space_ = space_ +1 elif ("0" <= i <= "9"): number_.append(i) elif ("a" <= i <= "z") or ("A" <= i <= "Z"): EnglishLetter.append(i) else : otherString.append(i) # "1" 和 "a" 也是可以比较的;";" 和 "a" 也是可以比较的; print(space_,number_,EnglishLetter,otherString) print(space_,len(number_),len(EnglishLetter),len(otherString))
输出结果:
可识别“\t”
因为我用的是python自带的IDLE,不支持输入的字符串中带有回车,但是如果字符中直接包含\n 或\t的,都会当做两个字符看待; 如果手动输入“ ” \t ,则能识别出;
原题使用的是string 库,如下:
其实,我想了下,这题还有另外一种解法,对着ASCII表进行比对,
或直接将所有字符转换为ASCII编码对应的数值
或先建立一个 数字列表、字符串列表、空格列表和其他字符列表;
如果要考虑转义字符,可以判断字符是否为"\",如果是,则查看下一个字符在是什么;这个时候得知道Python的所有转义字符;
总之,这题还是应该关注转义字符的,并熟悉String库的使用;
关于中文汉字的识别,后续再考虑吧;
————————(我是分割线)————————
参考:
1. RUNOOB.COM:https://www.runoob.com/python/python-exercise-example17.html
备注:
初次编辑时间:2019年9月30日16:24:16
环境:Windows 7 / Python 3.7.2
原题给出的解答方式:
————————
欢迎访问我的博客;
如果您觉得有用,请点赞!
说明:
标题带有*表示重要或待重新查看确认
标题带有#表示未编辑完成;待补充
标题带有######表示为概要目录