2011-01-27 102 views
1

實現不帶參數的函數標點符號(),從用戶輸入一個字符串,並按從左到右的順序打印出現在字符串中的所有標點符號。實現函數

def punctuation(): 

    a = raw_input("Please enter a string:") 

    check = ['!', ',', '.', ':', '?', ';'] 
    for p in check: 
     if p in a: 
      a.remove(p) 

我不斷收到的raw_input即沒有定義閒置錯誤標誌?那麼我也不太熟悉split()應該做什麼?溫柔的傢伙,我是一個蟒蛇n00b。

+2

這樣的措辭聽起來像是一個家庭作業問題。如果是這樣,請申請'家庭作業'標籤和/或提及它。如果不是,請原諒我的誤解。 – Phrogz 2011-01-27 02:23:06

+1

我沒有在你的代碼中看到一個`split()`,但是這裏的文檔就在這裏:http://docs.python.org/library/stdtypes.html#str.split – miku 2011-01-27 02:23:19

+0

wjat split function ?? – Jason 2011-01-27 02:24:52

回答

1

代替你可能想這樣做,至於你的邏輯而言相反的方式。

  1. 維護標點符號列表(或字符串)。 (檢查標準庫模塊字符串是否有任何幫助)
  2. 檢查輸入字符串的每個字符,如果它存在於上面的列表中,請將其打印出來。

貌似string模塊可以ofcourse一定的幫助:

>>> import string 
>>> string.punctuation 
'!"#$%&\'()*+,-./:;<=>[email protected][\\]^_`{|}~' 

所以,你會寫你的程序沿線的東西:

for each_character in mystr: 
    if each_character in string.punctuation: 

呀,你可以在使用raw_input() python2得到你喜歡的字符串。對於python3,你應該只使用input()

1

這聽起來像你正在使用Python 3 raw_input()已經與input()