私は単語を逆に読んで詩を出力し、すべての文字を小文字にする関数を書こうとしています。私は周りを見回しましたが、.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()
公式ドキュメントに従って、
str.lower()
大文字に変換されたすべての文字[4]を小文字に変換した文字列のコピーを返します。
したがって、いくつかの異なる場所で使用できます。
lines.append(line.lower())
reversed_line = remove_punctuation(line).strip().split(" ").lower()
または
print(len(lines) - i, " ".join(reversed_line).lower())
(これは結果を保存しませんが、それを印刷するだけなので、望んだものではない可能性があります)。
ソースの言語によっては、 this のように少し注意が必要な場合があります。 の他の関連する回答も参照してください。Pythonで文字列を小文字に変換する方法
2行目から最後の行をこれに変更するとうまくいくと思います
print(len(lines) - i, " ".join(reversed_line).lower())
あなたはおそらくここにそれを挿入することができます、例えば:
_lines.append(line.lower())
_
line.lower()
はline
自体には何もしません(文字列は不変です!)が、新しい文字列オブジェクトを返すことに注意してください。行にその小文字の文字列を保持させるには、次のようにします。
_line = line.lower()
_
ファイルの内容を変数に格納し、次のようにそれを自身の.lower()に割り当てます。
fileContents = inputFile.readline()
fileContents = fileContents.lower()