Python练习题4.14统计字符
Posted 我要去西藏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python练习题4.14统计字符相关的知识,希望对你有一定的参考价值。
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
代码如下:(PS:这个程序搞的我心态崩了)
#!/usr/bin/python # -*- coding: utf-8 -*- #a-z:97-122,A-Z:65-90,0-9:48-57。 #回车,ASCII码13 #换行,ASCII码10 #空格,ASCII码32 z = {"letter":0,"blank":0,"digit":0,"other":0} s = input() n = len(s) #这个判断折腾了半天,难受 while True: if n<10: s += input() n += len(s)+1 z["blank"] += 1 else: break for i in range(0,len(s)): if ord(s[i]) == 32 or ord(s[i]) == 10: z["blank"] += 1 elif ord(s[i]) >= 97 and ord(s[i]) <=122: z["letter"] += 1 elif ord(s[i]) >= 65 and ord(s[i]) <=90: z["letter"] += 1 elif ord(s[i]) >= 48 and ord(s[i]) <=57: z["digit"] += 1 else: z["other"] += 1 #遍历字典,昨天刚学的,今天就忘了使用keys(),欠打 for k in z.keys(): if k != "other": print("{} = {:d}, ".format(k,z[k]),end="") else: print("{} = {:d}".format(k,z[k]),end="")
这个程序用简单的while循环就可以的,大家可以百度看看。
重点部分:如何判断接收的字符,测试数据中搞了个换行输入,第一个while我折腾了老半天。
测试成功后,我百度看了看,发现别人写的代码很简洁明了。不需要判断ASCII码,部分代码如下:
for i in s: if i.isalpha(): letter += 1 elif i.isdigit(): digit += 1 elif i.isspace(): blank += 1 else: other += 1
看来对内置的一些方法函数一定要熟记,不然只能笨方法,判断ASCII码。
唉,自己写程序,总是将简单程序复杂化。
读书和健身总有一个在路上
以上是关于Python练习题4.14统计字符的主要内容,如果未能解决你的问题,请参考以下文章
33 python format练习题 利用format方法生成一个星号三角形
统计一段文章的单词频率,取出频率最高的5个单词和个数(python)
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段