web-dev-qa-db-fra.com

Comment tout faire dans une chaîne en minuscules

J'essaie d'écrire une fonction qui imprimera un poème en lisant les mots à l'envers et en mettant tous les caractères en minuscules. J'ai regardé autour de moi et j'ai trouvé que .lower () devrait tout mettre en minuscule dans la chaîne; cependant je n'arrive pas à le faire fonctionner avec ma fonction. Je ne sais pas si je le mets au mauvais endroit ou si .lower () ne fonctionnera pas dans mon code. Toute rétroaction est appréciée!

Voici mon code avant d'entrer .lower () n'importe où:

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
Alex Bass

Selon documentation officielle,

str.lower()

Renvoie une copie de la chaîne avec tous les caractères en casse [4] convertis en minuscules.

Vous pouvez donc l'utiliser à plusieurs endroits différents, par exemple.

lines.append(line.lower())

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

ou

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

(cela ne stockerait pas le résultat, mais l'imprimerait seulement, donc ce n'est probablement pas ce que vous voulez).

Notez que, selon la langue de la source, vous devrez peut-être un peu de prudence, par exemple, this . Voir aussi d'autres réponses pertinentes pour Comment convertir une chaîne en minuscules en Python

Je pense que changer l'avant-dernière ligne en ceci peut fonctionner

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

Vous pourriez probablement l'insérer ici, par exemple:

lines.append(line.lower())

Notez que line.lower() ne fait rien pour line lui-même (les chaînes sont immuables!), Mais renvoie un nouvel objet chaîne. Pour que la ligne contienne cette chaîne en minuscules, vous devez:

line = line.lower()
1
schwobaseggl

Stocker le contenu d'un fichier dans une variable, l'assigner à lui-même .lower () comme ceci:

fileContents = inputFile.readline()
fileContents = fileContents.lower()
1
Caleb Sim