代码之家  ›  专栏  ›  技术社区  ›  Alex Bass

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

  •  5
  • Alex Bass  · 技术社区  · 8 年前

    我试图写一个函数,将打印一首诗读的话倒过来,使所有的字符小写。我环顾四周,发现了这一点。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 回复  |  直到 8 年前
        1
  •  8
  •   sancho.s ReinstateMonicaCellio    8 年前

    根据 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

        2
  •  2
  •   Yardid    8 年前

    我认为把第二行改成最后一行可能行得通

    print(len(lines) - i, " ".join(reversed_line).lower())
    
        3
  •  1
  •   user2390182    8 年前

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

    lines.append(line.lower())
    

    请注意 line.lower() 不做任何事情 line 本身(字符串是不可变的!),但返回一个新的字符串对象。要使行包含小写字符串,您需要执行以下操作:

    line = line.lower()
    
        4
  •  1
  •   Anonymous    8 年前

    将文件内容存储在变量中,并将其分配给自身。lower()类似:

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