3桁の許可番号を文字列として受け取り、それが許可するアクセス権を返す関数decode(chmod)を書きたいと思います。 私は0番目の要素を要求しない限り動作しているようです。私は理由を理解できませんでした。Pythonリスト第0要素が混在します
def decode(chmod):
liste = [int(i)for i in str(chmod)]
chmod = ["None", "Execute only", "Write only",
"Write and Execute", "Read only",
"Read and Execute", "Read and Write",
"Read Write and Execute"]
for i in liste:
print chmod[i]
return liste
print decode(043)
おかげ -
は
str
を変更してみてください。しかし、私は入力に関与するはずがありません。私はそれが動作するかどうかだけをテストしていました。 – janvarpythonが043を見ると、それは8進数の整数であると考えられます。あなたのデコード関数は、そのintgerを取得します。 str()を実行するのは、あなたが望むものではありません。 8進整数を渡したい場合は、それを8進文字列repに変換する必要があります。 (str()で十分ではありません)。 – sureshvv
@grv:あなたが書いた説明はこう書いています: "3桁の許可番号**を文字列**として取ります"。しかし、あなたのテストでは、文字列を渡すことはありません。あなたは整数を渡しています。したがって、引用符の必要性。 –