2016-07-31 64 views
-5

我是新來編碼,這個功能是使字符串或句子中的所有字母小寫,然後收集所有沒有空格的字母。我能理解(進口字符串),它在他們使用的Python 2.7的(MIT課程)的視頻效果很好......我試圖複製,但...:此代碼dosn't工作在我的python 3.5

def toChars(s): 
    import string 
    s = string.lower(s) 
    ans = '' 
    for c in s:  
     if c in string.lowercase: 
      ans = ans + c 
     return ans 

toChars("Test") 

給錯誤:

AttributeError: module 'string' has no attribute 'lower'

+0

@DeepSpace你確定花括號不是有意的或代碼有問題嗎? – Li357

+2

'return'的縮進是錯誤的。 – Daniel

+1

該課程聽起來很古老。早在Python 2.7發佈之前,'string.lower'和類似的函數已經被棄用了很久了。你應該使用'str.lower'方法,例如's = s.lower()'。 –

回答

1

替換:

s = string.lower(s) 

有:

s = s.lower() 

這是新python版本的正確方法。

此外,更改:

  if c in string.lowercase: 

要:

  if c.islower(): 

如OP提到的評論,你也應該解決return語句的縮進。