Python 列出第零个元素混淆

Python list zeroth element mix up

我想编写一个函数 decode(chmod),它将一个三位数的权限编号作为一个字符串,并 returns 它授予的权限。 除非我要求第零个元素,否则它似乎正在工作。我不明白为什么会这样。

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)

您需要 043 左右的引号。请尝试“043”。

(假设你想传递一个整数)

043 是以 8 为底数,与以 10 为底数的 35 相同。因此,您将整数 35 传递给解码函数。

尝试更改 str -> oct

liste = [int(i) for i in oct(chmod)[2:]] #Use [2:] in Py3, and [1:] in Py2