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