我正在尝试编写一个函数,它将打印一首诗,向后读取单词,并使所有字符小写。我环顾四周,发现.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()
答案 0 :(得分:5)
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()