习题解析之:单词个数
【问题描述】
本关任务:输入一个英文句子,以回车符结束,单词间以空格分隔,标点符号后跟至少一个空格,统计并输出单词的个数(仅统计单词,数字按单词计,不计算标点符号,重复单词出现几次就统计几次)。
编程要求
输入:一个英文句子
输出:单词个数
示例
输入:
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."

【编程思路2】
由于输入的英文句子中单词间以空格分隔,因此可以用循环遍历输入的字符串中的每个字符,若某个字符是一个空格,而它的前一个字符不是空格,则这个空格前面就是一个单词,计数。
为了处理方便,可以用 strip() 函数将输入字符串开头和结尾可能存在的空格去掉。这样,输入的字符串第一个字符(序号为 0 的元素)肯定不是空格,循环可以从序号为 1 的字符开始遍历,遍历结束后,单词个数还需加上 1,因为最后一个单词后面没有空格。
按这个思路编写的源程序如下:

浙公网安备 33010602011771号