Perché non posso avere 008 o 009 chiavi per un dettato Python, ma 001-007 vanno bene? Esempio:Perché le chiavi non valide 008 e 009 per dict Python?
some_dict = {
001: "spam",
002: "eggs",
003: "foo",
004: "bar",
008: "anything", # Throws a SyntaxError
009: "nothing" # Throws a SyntaxError
}
Aggiornamento: Problema risolto. Non ero consapevole che l'avvio di un letterale con uno zero lo rendesse ottale. Sembra davvero strano. Perché zero?
Perché in Python? Precedenti storici (C l'ha fatto). Non ho idea del perché fosse in C, perché sono d'accordo sul fatto che sia piuttosto sciocco. – Jacob
sì, siamo bloccati con esso. Se devi avere gli zeri, crea invece delle stringhe. Il dizionario funzionerà correttamente. –
I letterali ottali venivano rappresentati con una "o" (cioè o73). Non so perché è stato modificato a zero (0) nei linguaggi di tipo C. I numeri esadecimali (base 16) sono stati rappresentati con un prefisso x (o 0x) o un suffisso 'h' (0x2AE, 2AEh). E alcune lingue hanno usato il prefisso 'b' per rappresentare numeri binari. –