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

时间:2017-11-01 01:15:18

标签: python 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()

4 个答案:

答案 0 :(得分:5)

根据 official documentation

str.lower()

返回字符串的副本,其中所有套接字符[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

的其他相关答案

答案 1 :(得分:2)

我认为将第二行改为最后一行可能有效

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

答案 2 :(得分:1)

你可以在这里插入它,例如:

lines.append(line.lower())

请注意line.lower()line本身没有任何作用(字符串是不可变的!),但返回一个新的字符串对象。要使行保持小写字符串,您可以:

line = line.lower()

答案 3 :(得分:1)

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

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