2017-06-13 333 views
-17

我有一個程序可以計算並打印包含特定字符(忽略大小寫)的句子中的所有單詞。如何刪除python輸出結尾的空格?

代碼在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=' ') 

這個程序工作正常,但在最後一個字是打印的,我不想以後成爲一個空白。 enter image description here

如果有人可以指導我如何刪除空間,將不勝感激。

+0

請複製(Ctrl-C)並粘貼(Ctrl-V)您的代碼並輸出到您的問題中。 – jambrothers

+0

RTFM ['join'](https://docs.python.org/2/library/stdtypes.html?highlight=join#str.join) –

回答

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)) 
0

你接近,只是改變你的打印語句從print((word), end=' ')print((word), end='')。您的打印語句最後有一個空格,但您不需要空格,因此請將結尾設爲空字符串。

+0

當我切換到... print((word),end = '')...它也刪除句子中的空格。我該如何寫它,以便它只消除末尾的空白而不是單詞之間的空格。 –

1

爲什麼不使用list comprehensionstr.join

print(' '.join([w for w in ip if item in w])) 
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