Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 13564|Răspunde: 1

[Comunicare] 17 erori comune de rulare în Python pentru începători

[Copiază linkul]
Postat pe 05.12.2015 13:08:56 | | |

Când înveți Python, poate fi puțin complicat să înțelegi semnificația mesajelor de eroare din Python. Iată o listă cu câteva erori comune de rulare care cauzează blocarea programului tău.


1) Am uitat să adaug :( la finalul if, elif, else, for, while, class, def def.

        Eroarea va apărea în cod ca acesta:

if spam == 42
    print("Alo!")

2) Use = în loc de == (rezultând în "SyntaxError: invalid syntax")

        = este operatorul de alocare, iar == este egal cu operația de comparație.Eroarea apare în astfel de coduri:

dacă spam = 42:
    print("Alo!")

3) Utilizarea incorectă a indentării. (Rezultând în "IndentationError:indentation indent", "IndentationError:undentent nu corespunde niciunui nivel exterior de indentare" și "IndentationError:așteptat un bloc indentat")

        Amintește-ți că indentarea este folosită doar după afirmațiile care se termină cu: după care formatul de indentare trebuie revenit la formatul anterior de indentare. Eroarea apare în astfel de coduri:

print("Alo!")
    print ("Salut!")
Sau:
if spam == 42:
    print("Alo!")
  print ("Salut!")
Sau:
if spam == 42:
print("Alo!")

4) Uitarea de a chema len() în instrucțiunea buclei for (rezultând în "TypeError: obiectul "list" cannot be interpretat ca un întreg")

De obicei vrei să iterezi peste o listă sau un element de șir printr-un index, ceea ce necesită apelarea funcției range(). Amintește-ți să returnezi valoarea len în loc să returnezi această listă.

        Eroarea apare în astfel de coduri:

spam = ["pisică", "câine", "șoarece"]
Pentru I în rază (spam):
    printare (spam)

5) Încearcă să modifici valoarea șirului (rezultând "TypeError: obiectul "str" nu suportă atribuirea itemelor")

        Șirul este un tip de date imuabil, iar eroarea apare în astfel de coduri:

spam = "Am o pisică de companie."
spam[13] = "r"
printare (spam)

Și chiar vrei să faci asta:

spam = "Am o pisică de companie."
spam = spam[:13] + "r" + spam[14:]
printare (spam)

6) Încercarea de a concatena valori non-string cu șiruri (rezultând în "TypeError: Can"t convertit obiectul "int" în str implicit")

        Eroarea apare în astfel de coduri:

numOuă = 12
print("I have " + numEggs + " eggs.")

Și chiar vrei să faci asta:

numOuă = 12
print("I have " + str(numEggs) + " eggs.")
Sau:
numOuă = 12
print("Am %s ouă." % (numEggs))

7) Uitarea de a pune ghilimele la începutul și sfârșitul șirului (rezultând în "SyntaxError: EOL în timpul scanării literală a șirului")

        Eroarea apare în astfel de coduri:

print(Bună!")
Sau:
print("Bună!)
Sau:
Numele meu = "Al"
print("Numele meu este " + numele meu + . Ce mai faci?")

8) Greșeală de scriere a numelor variabilelor sau funcțiilor (rezultând în "NameError: numele "fooba" nu este definit")

        Eroarea apare în astfel de coduri:

foobar = "Al"
print("Numele meu este " + fooba)
Sau:
spam = ruond(4.2)
Sau:
spam = Rundă(4.2)

9) Greșeală de ortografie a numelor metodelor (rezultând în "AttributeError: obiectul "str" nu are atributul "lowerr")

        Eroarea apare în astfel de coduri:

spam = "ESTE SCRIS CU LITERE MICI."
spam = spam.lowerr()

10) Referințele depășesc indexul maxim al listei (rezultând în "IndexError: index list out of range")

        Eroarea apare în astfel de coduri:

spam = ["pisică", "câine", "șoarece"]
print(spam[6])

11) Folosirea unei valori cheie din dicționar care nu există (rezultând în "KeyError: 'spam'")

        Eroarea apare în astfel de coduri:

spam = {"cat": "Zophie", "dog": "Basil", "mouse": "Whiskers"}
print("Numele zebrei mele de companie este " + spam["zebra"])

12) Încercarea de a folosi un cuvânt-cheie Python ca nume de variabilă (rezultând "SyntaxError: sintaxă invalidă")

        Cheia Python nu poate fi folosită ca nume de variabilă, eroarea apare în coduri ca acesta:

Clasă = "algebră"

Cuvintele cheie Python3 sunt: și, as, assert, break, class, continue, def, del, elif, else, except, False, final, for, from, global, if, import, in, is, lambda, None, nonlocal, not, sau, pass, raise, return, Adevărat, încearcă, în timp ce, cu, cedează


13) Folosirea operatorilor de valoare adăugată într-o variabilă nouă definită (rezultând în "NameError: numele "foobar" nu este definit")

        Nu folosiți șiruri 0 sau null ca valori inițiale când declarați variabile, astfel încât un spam de propoziție += 1 folosind operatorul auto-incrementant să fie egal cu spam = spam + 1, ceea ce înseamnă că spam trebuie să specifice o valoare inițială validă.

        Eroarea apare în astfel de coduri:

spam = 0
spam += 42
ouă += 42

14) Folosiți variabile locale în funcții înainte de a defini variabilele locale (în acest caz, există o variabilă globală cu același nume ca variabila locală) (rezultând în "UnboundLocalError: variabila locală "foobar" referențiată înainte de atribuire")

        Este complicat să folosești o variabilă locală într-o funcție cu același nume ca o variabilă globală, iar regulile de utilizare sunt: dacă ceva este definit într-o funcție, dacă este folosit doar în funcție, este local, și invers.

        Asta înseamnă că nu o poți folosi într-o funcție ca variabilă globală înainte de a o defini.

        Eroarea apare în astfel de coduri:

someVar = 42
def myFunction():
    print(someVar)
    someVar = 100
myFunction()

15) Încercarea de a crea o listă de întregi cu range() (rezultând în "TypeError: obiectul "range" nu suportă atribuirea elementelor")

        Uneori vrei să obții o listă ordonată de numere întregi, așa că range() pare o metodă bună de a genera această listă. Totuși, trebuie să ții minte că range() returnează un "obiect range", nu valoarea efectivă a listei.

        Eroarea apare în astfel de coduri:

spam = distanță(10)
spam[4] = -1

Poate asta vrei să faci:

spam = listă(interval(10))
spam[4] = -1
(Notă: spam = range(10) funcționează în Python 2, deoarece în Python 2 range() returnează o valoare de listă, dar în Python 3 se generează eroarea de mai sus)

16) Nice în ++ sau -- operator de auto-incrementare. (Rezultând în "SyntaxError: sintaxă invalidă")

        Dacă ești obișnuit cu alte limbaje precum C++, Java, PHP etc., poate vrei să încerci să folosești ++ sau -- incrementează și scade o variabilă. Nu există un astfel de operator în Python.

        Eroarea apare în astfel de coduri:

spam = 1
Spam++

Poate asta vrei să faci:

spam = 1
spam += 1

17) Am uitat să adaug parametrul self la primul argument al metodei (rezultând în "TypeError: myMethod() nu ia argumente (1 dat)")

        Eroarea apare în astfel de coduri:

clasa Foo():
    def myMethod():
        print("Alo!")
a = Foo()
a.metoda mea()





Precedent:Software WiFi pentru spargere wireless + Tutorial (Picături de apă)
Următor:【Tutorial iOS Development Series Lansat în vară】Cod sursă al proiectului iOS
Postat pe 05.12.2015 13:34:16 |
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com