我必须创建一个计算句子平均单词长度的程序。它还必须提示用户输入句子,直到输入句号,使用不返回任何值的函数给用户指示,并在没有单词时进行错误检查。
到目前为止,这就是我所拥有的:
def main():
print('This program calculates the average word length in a sentence!')
s = input('Please enter a sentence: ')
words = s.split()
wordCount = len(words)
sum = 0
for w in words:
ch = len(w)
sum = sum + ch
avg = float(sum)/float(wordCount)
while True:
x = input('Enter a period to stop:')
if x == '.':
break
print('the average word length is ', avg)
main()
我一直在网上粉碎这个问题的其他答案,试图找到一种方法来完成这项工作。请帮忙。 :(我只是一个初学者,所以如果这看起来微不足道,我很抱歉。但我想知道我做错了什么。
编辑:
我需要使用while True循环,并且必须输入每个单独句子的平均单词长度。 要退出程序,必须输入一个句点。 如果没有字数,我需要有办法检查错误。 如果没有值可以返回,我需要它循环回到开头。
答案 0 :(得分:0)
你最后需要除以wordCount
吗?
average = sum / wordCount
print('the average word length is ', average)
答案 1 :(得分:0)
我看不到while True
循环涉及x
和句号的用途,但我相信你想输出float(sum)/float(wordCount)
。现在,你只是输出所有长度的总和。
答案 2 :(得分:0)
我建议您重新组织您的计划。创建一个向用户询问句子的函数,计算单词计数并打印平均值。然后,创建另一个设置while True:
循环的函数;在循环内部,询问用户是否继续。
这会让你分离关注点":要求用户输入句子的代码将在一起,并且反复询问的代码将与其分开。
你可以组织它:创建一个函数来计算句子中的平均单词长度,然后从用户输入函数中调用该函数。
P.S。不要忘记处理句子中有0个单词的情况。如果用户输入零长度句子,我建议您只需将平均字长设为0。
if wordCount != 0:
avg = float(sum) / float(wordCount)
else:
avg = 0