为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

jeck猫 2023-10-11 10:00:06
我是 python 的初学者,我的任务是创建一个函数,该函数接受字符串作为参数并返回字符串中的单词数。我在分配空格和空白字符串时遇到问题。我觉得我错过了一些东西,但又对错过了什么或搞砸了什么感到有点迷失。我们也不能使用 split。任何指导或帮助将不胜感激这是我到目前为止所拥有的:def word_count(str):count = 1for 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))
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

使用此代码作为改进


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,并且尝试对其进行索引将导致错误


查看完整回答
反对 回复 2023-10-11
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

问题似乎出在句子前面或后面有空格时。解决此问题的一种方法是使用内置函数“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"


查看完整回答
反对 回复 2023-10-11
?
BIG阳

TA贡献1859条经验 获得超6个赞

您可以执行以下操作:


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 count


count = word_count(' this is a test ')

print (count)


查看完整回答
反对 回复 2023-10-11
  • 3 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信