代码:
string = "T-shirt"
letters = []
for i in range(65, 91):
letters.append(chr(i))#A-Z
for i in range(97, 123):
letters.append(chr(i))#a-z
num = 0
for i in string:
if i in letters:#如果是字母
num += 1
print(num)#输出num
运行效果:
6
备注:加粗部分的单词可以自己改。
解析:
通过ASCII码和chr函数查找到所有大小写字母,再逐一遍历单词,如果是字母就+1个,这样就可以得到统计数据了。
代码如下:len(str.split())
其中str代表给出的英文句子。
代码解释:
1. 将句子切分成一个一个的单词。
str.split()是使用空格将英文句子分成一个一个的单词。空格是split方法的默认值,可以自行更改。返回值就是单词列表。
2. 统计单词数量。
前面我们得到了单词的列表,len()方法可以统计列表的长度,这个长度就是单词的个数。
使用比较基本的方法写的参考代码:
#!/usr/bin/env python# -*- coding: utf-8 -*-
#python 2.7
import re
print u'请输入字符串:'
wz = raw_input()
s = wz.lower()
#小写单词的正则表达式
r='[a-z]+'
#找到所有单词
ws = re.findall(r,s)
#定义一个字典来存储单词和次数
dt = {}
for w in ws:
dt[w] = dt.setdefault(w,0)+1
#wd来存储单词集合,可能有几个,比如2个单词,都出现30次
wd = []
#max用来存储单词出现的最多的次数
max = 0
for word,times in dt.items():
if times>max:
wd = []
wd.append(word)
max = times
elif times == max:
wd.append(word)
print u'有%s个单词,出现频率最高:'%len(wd)
for x in wd:
print "%s\t%s"%(x,max)
测试
请输入字符串:A good beginning makes a good ending!!!
有2个单词,出现频率最高:
a 2
good 2