如何使字符串中的所有内容都小写

How to make everything in a string lowercase

我正在尝试编写一个函数来打印一首诗,将单词倒着读,并将所有字符设为小写。我环顾四周,发现 .lower() 应该使字符串中的所有内容都小写;但是我似乎无法使其与我的功能一起使用。我不知道我是否把它放在了错误的位置,或者 .lower() 是否在我的代码中不起作用。感谢任何反馈!

下面是我在任何地方输入 .lower() 之前的代码:

def readingWordsBackwards( poemFileName ):
    inputFile = open(poemFileName, 'r')
    poemTitle = inputFile.readline().strip()
    poemAuthor = inputFile.readline().strip()

    inputFile.readline()
    print ("\t You have to write the readingWordsBackwards function \n")
    lines = []
    for line in inputFile:
        lines.append(line)
    lines.reverse()

    for i, line in enumerate(lines):
        reversed_line = remove_punctuation(line).strip().split(" ")
        reversed_line.reverse()
        print(len(lines) - i, " ".join(reversed_line))

    inputFile.close()

我认为将倒数第二行改成这样可能有效

print(len(lines) - i, " ".join(reversed_line).lower())

您可以将其插入此处,例如:

lines.append(line.lower())

注意 line.lower() 不会对 line 本身做任何事情(字符串是不可变的!),但是 returns 一个新的字符串对象。要使行保留小写字符串,您可以这样做:

line = line.lower()

将文件的内容存储在变量中,然后将其分配给自身 .lower(),如下所示:

fileContents = inputFile.readline()
fileContents = fileContents.lower()

根据official documentation,

str.lower()

Return 将所有大小写字符 [4] 转换为小写的字符串副本。

所以你可以在几个不同的地方使用它,例如

lines.append(line.lower())

reversed_line = remove_punctuation(line).strip().split(" ").lower()

print(len(lines) - i, " ".join(reversed_line).lower())

(这不会存储结果,而只会打印它,所以它可能不是您想要的)。

请注意,根据源语言的不同,您可能需要小心一些,例如 this。 另请参阅 How to convert string to lowercase in Python

的其他相关答案