关于用python写一个函数,基础题
请大家帮我看看这道题要求函数least_vowel_words(text)可以找出一段text中,哪个单词的元音占的比例最小例如:“take”就是2/4=0.5>>>le...
请大家帮我看看这道题
要求函数least_vowel_words(text)
可以找出一段text中,哪个单词的元音占的比例最小
例如:
“take”就是 2/4=0.5
>>>least_vowel_words("i do go to school.")
["do", "go"]
谢谢各位! 展开
要求函数least_vowel_words(text)
可以找出一段text中,哪个单词的元音占的比例最小
例如:
“take”就是 2/4=0.5
>>>least_vowel_words("i do go to school.")
["do", "go"]
谢谢各位! 展开
2个回答
展开全部
不应该是school么? 比例是0.333333333
def least_vowel_words(text):
line=text.strip('.').split()
wdict=dict()
vowel='aeiouAEIOU'
for word in line:
num = 0.0
for chr in word:
if chr in vowel:
num+=1
r=str(float(num/len(word)))
if r in wdict:
wdict[r]=wdict[r]+[word]
else:
wdict[r]=[word]
print wdict[min(wdict.keys())]
更多追问追答
追问
谢谢,但是有一个问题,
如果text = ‘this morning is nice. how do you think?'
你的code没办法去掉这个text里面的句号和问号呀。
追答
用正则就好了.
import re
def least_vowel_words(text):
line=re.findall(r'\w+', text)
wdict=dict()
vowel='aeiouAEIOU'
for word in line:
num = 0.0
for chr in word:
if chr in vowel:
num+=1
r=str(float(num/len(word)))
if r in wdict:
wdict[r]=wdict[r]+[word]
else:
wdict[r]=[word]
print wdict[min(wdict.keys())]
展开全部
def isVowel(a):
if a in "aeiouAEIOU":
return True
else:
return False
def Calculate(a):
i = 0
for s in a:
if isVowel(s):
i+=1
return i/len(a)
def least_vowel_words(text):
dicte = dict()
list = text.strip('.').split()
for a in range(0,len(list)):
dicte[list[a]]= str(Calculate(list[a]))
i=min(dicte.values())
for k in dicte:
if dicte[k]==i:
print (str(i)+":"+str(k))
追问
谢谢,但是有一个问题,如果text = ‘this morning is nice. how do you think?'
你的code没办法去掉这个text里面的句号和问号呀。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询