Mit jelent a „duplán index tartományon kívüli” hiba a Pythonban?


Legjobb válasz

Jó estét,

Néhány nyelv szerencsére megvalósítja a biztonságos objektumot hozzáférés, bár nem sokat tudok a Pythonban, feltételezhetjük, hogy az objektum, amelyhez hozzáfér, rendelkezik hatótávolság-ellenőrzéssel.

Amit megérthetünk ebből az egyszerű utasításból, az az, hogy a Python néhány alapon objektumot hoz létre adattípusok, és szükség szerint hallgatólagosan felhívja hozzáférőit, átalakításokat és hatótávolság-ellenőrzéseket, konverziókat stb., Tehát ott van egy logikai hiba, kérjük, ellenőrizze, miért lépett be egy tartományba kívül eső duplához, nyilván a kódban van némi hiba az indexben és / vagy a duplaméret.

Ez egy megjegyzés, amely azt jelzi, hogy a többi nyelv toleránsabb abban, amit engednek megtenni, ami aztán úgynevezett futási hibát eredményez, mivel a tartományon kívüli elérés azt jelenti, hogy nem szándékolt adatokat olvashat, és írhat egy másik objektum memóriájába is, és ezért megsértheti az adatokat, ami vagy adatvesztéssel vagy a me összeomlik.

Üdvözlettel

Jean-François

Válasz

A pythonban a lista módosítható, így a méret nincs rögzítve.

Méret miatt nincs rögzítve

Az Ön által a listához rendelt értékek alapján a python memóriakezelés – belül létrehozza a listát (elérhető indexet) a 0, 4 növekedési mintázatban , 8, 16, 25, 35, 46, 58, 72, 88,… ahelyett, hogy sokszor meghívná a realloc () parancsot.

De a listához rendelt értékek kisebbek, mint a lista ( elérhető index).

Tehát egy lista esetében a elérhető index > hozzárendelt index.

Ha megpróbálja elérni a üres vagy Nincs elem elemet, rámutatva a lista elérhető indexére, ekkor megkapja a „ lista index tartományon kívüli hibát”.

nyissa meg a python-t és piszkolja be a kezeit th-vel kód alatt van, hogy jobban megértsük.

>> x = list (1234)

>> x

[1, 2, 3, 4]

>> length = len (x)

4

>> x [hossz ]

Indexhiba: lista index a tartományon kívül esik

MEGJEGYZÉS: A listaindex nullától (0) kezdődik.

De itt a hossz négy.

A fenti lista hozzárendelése a következő:

x [0] = 1

x [1] = 2

x [2] = 3

x [3] = 4

x [4] =?

Ha megpróbálja elérni az x [4] -et, amely Nem létező , a listán kívül esik a listaindex.

Annak érdekében, hogy jobban megértsük, hogyan osztják fel a listák a memóriát belső módon, kérjük, olvassa el ezt a linket: Python lista megvalósítás .

Köszönöm !!!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük