¿Por qué no puedo tener 008 o 009 como claves para un dict de Python, pero 001-007 están bien? Ejemplo:¿Por qué las claves 008 y 009 no son válidas para los dictados de Python?
some_dict = {
001: "spam",
002: "eggs",
003: "foo",
004: "bar",
008: "anything", # Throws a SyntaxError
009: "nothing" # Throws a SyntaxError
}
actualización: Problema resuelto. No sabía que comenzar un literal con un cero lo convertía en octal. Eso parece realmente extraño. ¿Por qué cero?
¿Por qué en Python? Precendente histórico (C lo hizo). No tengo idea de por qué estaba en C, porque estoy de acuerdo en que es bastante tonto. – Jacob
sí, estamos atrapados con eso. Si tiene que tener los ceros, hágalos en su lugar. El diccionario funcionará bien. –
Los literales occidentales solían estar representados con una "o" (es decir, o73). No sé por qué se cambió a cero (0) en los idiomas de tipo C. Los números hexadecimales (base 16) se han representado con un prefijo x (o 0x) o un sufijo 'h' (0x2AE, 2AEh). Y algunos idiomas han usado el prefijo 'b' para representar números binarios. –