此代码在我的 python 3.5 中不起作用

abu*_*ike -4 python python-3.5

我是编码新手,这个功能是将字符串或句子中的所有字母都变成小写,然后收集所有没有空格的字母。而且我可以理解(导入字符串),它在他们使用 python 2.7 的(MIT COURSE)视频中运行良好......我试图复制它但是......:

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")
Run Code Online (Sandbox Code Playgroud)

给出一个错误:

AttributeError: 模块“string”没有属性“lower”

Oha*_*tan 6

代替:

    s = string.lower(s) 
Run Code Online (Sandbox Code Playgroud)

和:

    s = s.lower() 
Run Code Online (Sandbox Code Playgroud)

这是新 Python 版本中的正确方法。

此外,更改:

         if c in string.lowercase:  
Run Code Online (Sandbox Code Playgroud)

到:

         if c.islower():
Run Code Online (Sandbox Code Playgroud)

正如 OP 评论中提到的,您还应该修复return语句的缩进。