我有一个程序可以计算和打印包含特定字符的句子中的所有单词(忽略大小写)。
Python中的代码 -
item=input()
ip=input().tolower()
r=ip.count(item)
print(r)
ip=ip.split()
for word in ip:
if item in word:
print((word), end=' ')
这个程序按预期工作,但是对于打印的最后一个单词,我不希望它后面有空格。
如果有人可以指导我如何移除空间,我们将不胜感激。
答案 0 :(得分:1)
为什么不使用list comprehension
和str.join
?
print(' '.join([w for w in ip if item in w]))
答案 1 :(得分:0)
我认为没有办法删除它,因为它是终端的一部分。我能给你的最佳答案。
我扩展了代码,因为我有点无聊。
sentence = input("Enter a sentence: ").lower()
pull = input("Which character(s) do you want to count?: ").lower()
for c in pull:
occurrences = 0
for character in sentence:
if c == character:
occurrences+=1
if c!=" ": print("\'%s\' appears %d times"%(c, occurrences))
for word in sentence.split():
occurrences = 0
for character in word:
if c == character:
occurrences+=1
if occurrences == 1:
print(("1 time in \'%s\'")%(word))
elif occurrences > 0:
print(("%d times in \'%s\'")%(occurrences,word))
答案 2 :(得分:0)
您已关闭,只需将您的打印声明从print((word), end=' ')
更改为print((word), end='')
即可。你的print语句有一个空格,但你不想要空白,所以最后是一个空字符串。
答案 3 :(得分:0)
+具有列表推导的解决方案显得更简洁,但如果您更喜欢替代方案,则可以使用以下方法。它已经过测试并使用了图片中的示例。
# Amended solution. The commented lines are the amendment.
item = input('Letter: ')
ip = input('Input: ').lower()
r = ip.count(item)
print(r)
ip = ip.split()
outputString = '' # Added: Initialise an empty string to keep the answer
for word in ip:
if item in word:
outputString += word + ' ' # Changed: Accumulates the answer in a string
print(outputString[:-1]) # Added: Prints all the string's characters
# except the last one, which is the additional space