字符串操作的基本Python问题:示例:string.lowercase

Shi*_*tsu 2 python string operations attributeerror

所以我试图运行它,但它出错了,我需要帮助理解什么是错的.我非常感谢任何帮助,我正在参加麻省理工学院开放式课程介绍编程:

words="GreatTimes"
words.lowercase
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

AttributeError: 'str' object has no attribute 'lowercase'
Run Code Online (Sandbox Code Playgroud)

问题是我正在尝试运行"如何像计算机科学家一样思考"中的示例代码,它仍然给我错误.

def isLower(ch):
    return string.find(string.lowercase, ch) != -1
Run Code Online (Sandbox Code Playgroud)

所以我无法弄清楚语法错误是什么.看一下Python doc页面,它说:

string.lowercase包含所有被视为小写字母的字符的字符串.在大多数系统中,这是字符串'abcdefghijklmnopqrstuvwxyz'.特定值取决于语言环境,并在调用locale.setlocale()时更新.

思考?

编辑:啊,对不起,我应该更清楚.所以我正在尝试编写一段代码,告诉我字符串中的字符是否小写.我的代码是我的实现.虽然示例代码是我用来尝试检查我的语法是否错误,这是问题的根源.但是,示例代码也会生成错误.简而言之,为什么这段代码不起作用?好像它应该吐出一串所有小写字母,如"GreatTimes"中的"reatimes"和/或你如何使用string.lowercase制作这个程序?

ire*_*ses 8

我对你要做的事感到有点困惑.这似乎是一个相当人为的练习.

  • 如果您只想使用实例方法,words.lower()则会返回该字符串的小写版本words.

  • 如果你想使用你自己的小写函数string.lowercase(它只是一个设置为所有小写字母的字符串的常量),那么你需要确保import string在调用它之前做一个(例如在你的lower函数示例中).

  • 如果你做了import string,你也可以使用string.lower('STRING with CAPS').

编辑:这是运行您的功能的一些代码,向您展示它的工作原理:

import string

def isLower(ch):
    return string.find(string.lowercase, ch) != -1


words = "GreatTimes"

lowercase_letters = ""
for ch in words:
    print ch, '->', isLower(ch)

    if isLower(ch):
        lowercase_letters += ch

print "Lowercase letters were:", lowercase_letters
Run Code Online (Sandbox Code Playgroud)

输出:

G -> False
r -> True
e -> True
a -> True
t -> True
T -> False
i -> True
m -> True
e -> True
s -> True
Lowercase letters were: reatimes
Run Code Online (Sandbox Code Playgroud)