如何创建不包含空格的字数统计?

我是 python 的初学者,我的任务是创建一个函数,该函数接受字符串作为参数并返回字符串中的单词数。


我在分配空格和空白字符串时遇到问题。我觉得我错过了一些东西,但又对错过了什么或搞砸了什么感到有点迷失。我们也不能使用 split。


任何指导或帮助将不胜感激


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


def word_count(str):

count = 1

for i in str:

    if (i == ' '):

       count += 1                    

print (count)        

word_count('hello') --> 输出 = 1 (到目前为止正确)


word_count('你好吗?') --> 输出 = 3 (也是正确的/至少是我正在寻找的)


word_count('这个字符串有宽空格') --> 输出 = 7 (应该是 5...)


word_count(' ') --> 输出 = 2 (应该是 ''。我认为它正在执行 count(1+1))


jeck猫
浏览 123回答 3
3回答

哔哔one

使用此代码作为改进def word_count(str):    count = 1    for i in str:        if (i == ' '):           count += 1    if str[0] == ' ':        count -= 1    if str[-1] == ' ':        count -= 1    print (count)您的错误是因为您计算空格是否从开头开始或出现在末尾。请注意,您不能传递空字符串,""因为它被计算为NONE,并且尝试对其进行索引将导致错误

翻过高山走不出你

问题似乎出在句子前面或后面有空格时。解决此问题的一种方法是使用内置函数“strip”。例如,我们可以执行以下操作:example_string = " This is a string "print(example_string)stripped_string = example_string.strip()print(stripped_string)第一个字符串的输出将是" This is a string " 第二个字符串的输出将是"This is a string"

BIG阳

您可以执行以下操作:def word_count(input_str):    return len(input_str.split())count = word_count(' this is a test ')print (count)它基本上删除了前导/尾随空格并将短语拆分为列表。如果您偶尔需要使用循环:def word_count(input_str):    count = 0    input_str = input_str.strip()    for i in input_str:        if (i == ' '):            count += 1                        return countcount = word_count(' this is a test ')print (count)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python