空格被忽略

时间:2018-08-05 02:41:58

标签: python python-3.x

我制作了一个有趣的程序,可以在句子中找到“爱”一词,并列出其中有多少个“爱”。如您所见,有几个要求,“爱”必须是一个词。这意味着它必须以空格分隔或以标点符号结尾。我也从句子的开头算起“爱”。

num_loves = 0
inpt = input('type ')
for star in range(len(inpt) - 3):
if inpt[star] == 'l' or 'L' and inpt[star+1] == 'o' and inpt[star+2] == 'v' and inpt[star+3] == 'e':
    if inpt == 'love' or 'Love':
        num_loves = num_loves + 1
    elif star == 0 and inpt[star+4] == ' ' or '.' or ',' or '!' or '?':
        num_loves = num_loves + 1
    elif star != 0:
        if inpt[star-1] == ' ' and inpt[star+4] == ' ' or '.' or ',' or '!' or'?':
            num_loves = num_loves + 1
if num_loves != 0:
   print(num_loves)
print('true')
   if num_loves == 0:
print('false')

尽管发现“爱”很棒,但这太伟大了。当我输入“ Iloveyou”时,即使我不想要它,仍然会找到爱这个词。这正是我输入代码“ inpt [star-1] ==''“的原因。似乎python忽略了这部分。请帮助。我正在使用python 3。

1 个答案:

答案 0 :(得分:1)

您已经使事情变得过于复杂,并错过了一些标点符号之类的极端情况。有更简单的解决方案:

from collections import Counter
inpt = input('type ')  # "Love Love lovelovelove Love love lovelove Love love love love"
no_punct = ''.join( [i.upper() if i.isalpha() else ' ' for i in inpt] )
print Counter(no_punct.split())['LOVE']

输出:

8