所以我试图运行它,但它出错了,我需要帮助理解什么是错的。我非常感谢任何帮助,我正在参加麻省理工学院开放式课程介绍编程:
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制作这个程序?
答案 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”它可以正常工作