Python:错误检查的句子中的平均字长

时间:2014-12-17 20:13:08

标签: python

我必须创建一个计算句子平均单词长度的程序。它还必须提示用户输入句子,直到输入句号,使用不返回任何值的函数给用户指示,并在没有单词时进行错误检查。

到目前为止,这就是我所拥有的:

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循环,并且必须输入每个单独句子的平均单词长度。 要退出程序,必须输入一个句点。 如果没有字数,我需要有办法检查错误。 如果没有值可以返回,我需要它循环回到开头。

3 个答案:

答案 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