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

时间:2011-05-20 05:06:30

标签: python string operations attributeerror

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

words="GreatTimes"
words.lowercase

我收到了这个错误:

AttributeError: 'str' object has no attribute 'lowercase'

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

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

所以我无法弄清楚语法错误是什么。看Python doc page,它说:

  

string.lowercase包含的字符串   所有被考虑的角色   小写字母。在大多数系统上   这是字符串   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'。该   具体值取决于语言环境,   并将在何时更新   调用locale.setlocale()。

思想?

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

3 个答案:

答案 0 :(得分:8)

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

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

  • 如果你想使用string.lowercase(它只是一个设置为全部小写字母的字符串的常量)来实现你自己的小写函数,那么你需要确保你做{{ 1}}在调用它之前(例如在你的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

答案 1 :(得分:0)

lowercase是字符串模块中字符串的名称:

  
    
      

导入字符串       string.lowercase       'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    
  

但您无法通过字符串实例访问它:

  
    
      

word ='这是一个字符串'       word.lowercase       Traceback(最近一次调用最后一次):         文件“”,第1行,in       AttributeError:'str'对象没有属性'lowercase'

    
  

此外,find方法不符合您的想法 - 检查文档。

阿伦

答案 2 :(得分:-2)

尝试使用“ascii.lowercase”它可以正常工作