I am a teacher!

导航

习题解析之:单词个数

【问题描述】

本关任务:输入一个英文句子,以回车符结束,单词间以空格分隔,标点符号后跟至少一个空格,统计并输出单词的个数(仅统计单词,数字按单词计,不计算标点符号,重复单词出现几次就统计几次)。

编程要求
输入:一个英文句子
输出:单词个数

示例

输入:

Life is short, you need Python!
输出:
6

【编程思路1】

        使用 split() 函数将输入的英文句子按空格拆分。

        Python中split()是字符串处理中常用的函数,用于将字符串按指定分隔符拆分为子字符串列表。
        调用方法为: str.split(sep, maxsplit)
        其中,sep为可选参数,用于指定分隔符。默认为所有空字符(包括空格、换行\n、制表符\t等)。若字符串中无分隔符,则返回包含原字符串的列表。
                  maxsplit也是可选参数,限制分割次数。默认为-1,表示全部分割;若设为n,则最多分割n次,生成n+1个子字符串。

        例如,s = "I am a boy."

                   print(s.split())   # 输出结果为 列表  ['I', 'am', 'a', 'boy.']
        将输入的一个英文句子(字符串)按空格拆分为一个子字符串(每个子字符串就是一个单词)列表,列表中元素的个数就是所求的单词个数。
        编写源程序如下:

     image

 【编程思路2】

        由于输入的英文句子中单词间以空格分隔,因此可以用循环遍历输入的字符串中的每个字符,若某个字符是一个空格,而它的前一个字符不是空格,则这个空格前面就是一个单词,计数。

        为了处理方便,可以用 strip() 函数将输入字符串开头和结尾可能存在的空格去掉。这样,输入的字符串第一个字符(序号为 0 的元素)肯定不是空格,循环可以从序号为 1 的字符开始遍历,遍历结束后,单词个数还需加上 1,因为最后一个单词后面没有空格。

        按这个思路编写的源程序如下: 

     image

posted on 2025-11-20 08:53  aTeacher  阅读(116)  评论(0)    收藏  举报