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()
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())
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()
Stocker le contenu d'un fichier dans une variable, l'assigner à lui-même .lower () comme ceci:
fileContents = inputFile.readline()
fileContents = fileContents.lower()