私は私はこの予期しない出力を理解していない、誰も説明することができますか?
[1,4,9,10,#]
として出力を期待していたが、誰もが起こっていることである理由として、その理由を説明することはできますか?私は
[1,4,9,10]
を取得していますか
str = "adij"
mainstr = []
for i in range(0, len(str)):
if 97 <= ord(str[i]) <= 107:
mainstr.append(ord(str[i]) - 96)
if ord(str[i]) > 107:
mainstr.append(ord(str[i]) - 96)
mainstr.append('#')
print mainstr
変数 'str'を呼び出さないでください。 'str'は文字列コンストラクタです。すでにPythonインタプリタを使いこなしているかもしれません。そして、暗号的な '97 <= ord(str [i])<= 107'の代わりに' 'a '<= str [i] <=' k ''と書いてみませんか?あなたは、あなたの期待に何が間違っているかすぐに分かります。 – DyZ
'ord( 'j')' = 106です。したがって、107未満です。 –
Pythonでは、文字列内の文字を反復処理するときにループカウンタは必要ありません。 str:mainstr.append(ord(letter))の文字の場合は ' –