Python3 16 leggyakoribb hiba kezdő szkript végrehajtása (futásidejű hibák)

Rábukkantam egy szórakoztató cikket közös hibákat Python fejlesztők számára. Azt hiszem, hogy hasznos lesz azok számára, akik áthelyezték egy másik nyelvet, vagy csak tervezi az átmenet. Tovább a fordítást.

Hogy megoldást találjanak a problémákra a hibaüzenetek ki, ha fut a Python programok hozhat nehézségeket, ha tanulmányozza a nyelv először. Következő ismertetjük a leggyakoribb hibákat tapasztalt, amikor a futó programok és okoz meghibásodást a teljesítményt.

1) Hiányzik vastagbél végén a vonal után ellenőrzési struktúrák, mint például, ha. elif. mást. A. darabig. osztályban. vagy def. ami vezet a hiba jellege SyntaxError: érvénytelen szintaxis

2) Use = == helyett vezet SyntaxError típusú hiba: érvénytelen szintaxis

Symbol = a értékadó operátor, és a szimbólum == - összehasonlító operátor.

Ez a hiba akkor fordul elő az alábbi kódot:

3) használata helytelen mennyiségű behúzás.

Hiba típusa IndentationError: váratlan francia. IndentationError: Behúzás csökkentése nem egyezik a külső behúzás mértékét és IndentationError: várhatóan egy tagolt mondat

Emlékeznünk kell, hogy a behúzás kell tenni csak utána. de a végére a blokk van szükség, hogy visszatérjen az előző mennyiségű behúzás.

Hiba típusa Típushiba: „lista” objektumot nem lehet úgy értelmezni, mint egy egész

Gyakran van a vágy, hogy menjen egy hurkot az indexek lista elemeit vagy sorok egyidejűleg szeretné használni a range () függvény. Emlékeznünk kell arra, hogy meg kell, hogy az értéke len (someList) értékek helyett az someList

Hiba történik az alábbi kódot:

Néhány olvasó (eredeti cikk) észrevette, hogy jobb, hogy egy szerkezet, mint amilyen for i in spam. mint az írott fenti kódot. De ha kell, hogy a ismétlések számának a ciklusban, a használata vyshenapisannogo kód sokkal jobb, mint kapok egy listát az értékek.

A tolmács. Néha lehet a hiba, hogy megzavarja a forma módszer len () méretének meghatározására a lista. Ebben az esetben van egy hiba típusú „lista” objektum nem attribútum „alakú”

5) próbálja megváltoztatni része a húr. (Type error Típushiba: „str” objektum nem támogatja a tétel hozzárendelés)

Húrok megváltoztathatatlan típus. Ez a hiba akkor fordul elő az alábbi kódot:

Az eredmény várható:

A tolmács. További információk a változhatatlansága húrok megtalálható itt

6) Egy megpróbál csatlakozni nem string változó, hogy a húr hibát okoznak Típushiba: nem konvertálható „int” tárgy a str hallgatólagosan

Ez a hiba van:

A tolmács. kényelmesebben

7) A várt aposztróf elején vagy végén egy string változó (SyntaxError Hiba: EOL szkennelése közben szövegkonstans)

Ez a hiba akkor fordul elő az alábbi kódot:

8) Egy elírás a nevét egy változó vagy funkció (Hiba típusa NameError: név „fooba” nincs definiálva)

Ez a hiba akkor fordulhat elő, ezt a kódot:

A tolmács. Gyakran merül fel, amikor az írás NameError hiba jellege: név „true” nincs meghatározva és NameError: név „hamis” nincs definiálva. összefügg azzal a ténnyel, hogy a bulevnye értékeket kell írni nagybetűvel Igaz és hamis

9) Egy hiba elérésekor egy eljárás az objektum. (Hiba típusa AttributeError: „str” objektum nem attribútum lowerr)

Ez a hiba akkor fordul elő az alábbi kódot:

10) Egy kísérlet használjon indexet egy lista korlátokat. (Hiba típusa IndexError: list index out of range)

A hiba a következő kódot:

11) A nem létező kulcsokat a szótárban. (Hiba típusa KeyError: 'spam')

Hiba történik az alábbi kódot:

12) A lekötött kulcsszavak Python mint a változó nevét. (Hiba típusa SyntaxError: érvénytelen szintaxis)

Kulcsszavak (fenntartva) nem lehet használni, mint változók python. A példa az alábbi kódot:

Python 3 a következő kulcsszavakkal: és. a. érvényesíteni. megtörni. osztályban. tovább. def. del. elif. mást. kivéve. Hamis. végül. A. re. globális. if. import. a. van. lambda. Nincs. lokális. Nem. vagy. át. emelni. visszatéréshez. Igaz. próbálni. darabig. A. hozam

13.) Használja a megbízások az új inicializált változó. (Hiba típusa NameError: név „foobar” nem meghatározott)

Nem szükséges a remény, hogy a változók kezdeti elején valamilyen értéket 0 vagy egy üres karakterlánc.

Ez a hiba akkor fordul elő az alábbi kódot:

megbízás szereplők, mint a spam + = 1 egyenértékűek spam = spam + 1. Ez azt jelenti, hogy a változó spam már van némi értelme.

14) A helyi változók neve egybeesik a globális változók függvényében inicializálni lokális változó. (Hiba típusa UnboundLocalError: helyi változó „foobar” hivatkozott előtt megbízás)

Egy lokális változó a függvény neve azonos egy globális változó, ez veszélyes. Szabály: Ha egy változót a funkció használható az értékadó operátor, ez mindig egy helyi változót a függvény. Egyébként ez egy globális változó a függvény belsejében.

Ez azt jelenti, hogy lehetetlen, hogy egy globális változót (a neve megegyezik egy helyi változó) a függvény meghatározása előtt.

Kód a megjelenése ez a hiba a következő:

15) Akarják használni tartományban (), hogy hozzon létre egy listát a egészek. (Type error Típushiba: „tartomány” objektum nem támogatja a tétel hozzárendelés)

Néha azt szeretnénk, hogy egy listát egész sorrendben történik, így a range () függvény alkalmasnak tűnik, hogy létrehoz egy ilyen lista. Mindazonáltal meg kell jegyezni, hogy a range () visszaad egy tartomány objektumot. helyett egy lista egészek.

Példa hiba a következő kódot:

By the way, ez működik Python 2, a range () visszaad egy listát. Ugyanakkor kísérletet hajt végre kódot Python 3. vezet hiba leírása.

Meg kell tennie:

16) Nem növekményt vagy csökkenést szereplők ++ -. (Hiba típusa SyntaxError: érvénytelen szintaxis)

Ha jön a másik nyelven, mint a C ++, Java, PHP vagy, akkor próbálja használni a ++ vagy - változó. Python, ezek a szolgáltatók nem rendelkeznek.

A hiba a következő kódot:

Meg kell írni:

Ez a hiba akkor fordul elő az alábbi kódot:

Egy rövid magyarázat a különböző hibaüzenetek függelékben bemutatott D a „feltalálni a Python” könyv.

hasznos anyagok