web-dev-qa-db-ja.com

すべてを文字列の小文字にする方法

私は単語を逆に読んで詩を出力し、すべての文字を小文字にする関数を書こうとしています。私は周りを見回しましたが、.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
Alex Bass

公式ドキュメントに従って、

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())
2
Yardid

あなたはおそらくここにそれを挿入することができます、例えば:

_lines.append(line.lower())
_

line.lower()line自体には何もしません(文字列は不変です!)が、新しい文字列オブジェクトを返すことに注意してください。行にその小文字の文字列を保持させるには、次のようにします。

_line = line.lower()
_
1
schwobaseggl

ファイルの内容を変数に格納し、次のようにそれを自身の.lower()に割り当てます。

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