Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 13564|Svar: 1

[Kommunikation] 17 almindelige Python-runtime-fejl for nybegyndere

[Kopier link]
Opslået på 05/12/2015 13.08.56 | | |

Når man lærer Python, kan det være lidt kompliceret at forstå betydningen af Pythons fejlmeddelelser. Her er en liste over nogle almindelige runtime-fejl, der får dit program til at crashe.


1) Glemte at tilføje :( til sidst i if, elif, else, for, while, class, def def def.

        Fejlen vil opstå i kode som denne:

hvis spam == 42
    print ("Hej!")

2) Brug = i stedet for == (hvilket resulterer i "SyntaxError: invalid syntax")

        = er tildelingsoperatoren, og == er lig med sammenligningsoperationen.Fejlen opstår i kode som denne:

hvis spam = 42:
    print ("Hej!")

3) Forkert brug af indrykning. (Resulterer i "IndentationError:uventet indrykning", "IndentationError:unindent matcher ikke noget ydre indetationsniveau", og "IndentationError:forventet en indrykket blok")

        Husk, at indrykning kun bruges efter sætninger, der slutter med: hvorefter indrykningsformatet skal føres tilbage til det tidligere indrykningsformat. Fejlen opstår i kode som denne:

print ("Hej!")
    print ("Howdy!")
Eller:
hvis spam == 42:
    print ("Hej!")
  print ("Howdy!")
Eller:
hvis spam == 42:
print ("Hej!")

4) Glemmer at kalde len() i for loop-sætningen (hvilket resulterer i "TypeError: "list"-objektet kan ikke tolkes som et heltal)

Normalt vil du iterere over en liste eller streng gennem et indeks, hvilket kræver, at du kalder range()-funktionen. Husk at returnere len-værdien i stedet for at returnere denne liste.

        Fejlen opstår i kode som denne:

spam = ["kat", "hund", "mus"]
For I i inden for rækkevidde (spam):
    print(spam)

5) Prøv at ændre værdien af strengen (hvilket resulterer i "TypeError: "str"-objektet understøtter ikke element-tildelingen)

        strengen er en uforanderlig datatype, og fejlen opstår i kode som denne:

spam = "Jeg har en kat."
spam[13] = "r"
print(spam)

Og du vil faktisk gøre dette:

spam = "Jeg har en kat."
spam = spam[:13] + "r" + spam[14:]
print(spam)

6) Forsøg på at sammenkæde ikke-streng-værdier med strenge (hvilket resulterer i "TypeError: Kan ikke implicit konvertere "int"-objektet til str")

        Fejlen opstår i kode som denne:

numÆg = 12
print("Jeg har " + numÆg + " æg.")

Og du vil faktisk gøre dette:

numÆg = 12
print("Jeg har " + str(numEggs) + " æg.")
Eller:
numÆg = 12
print("Jeg har %s æg." % (numEggs))

7) Glemte at sætte anførselstegn i begyndelsen og slutningen af strengen (hvilket resulterede i "SyntaxError: EOL ved scanning af strengliteralen")

        Fejlen opstår i kode som denne:

print (Hej!")
Eller:
print ("Hej!)
Eller:
myName = "Al"
print("Mit navn er " + mitNavn + . Hvordan har du det?")

8) Stavefejl af variabel- eller funktionsnavne (hvilket resulterer i "NameError: name "fooba" er ikke defineret")

        Fejlen opstår i kode som denne:

foobar = "Al"
print ("Mit navn er " + fooba)
Eller:
spam = ruond(4.2)
Eller:
spam = Runde(4.2)

9) Stavefejl af metodenavne (hvilket resulterer i "AttributeError: "str"-objektet har ingen attribut "lowerr"")

        Fejlen opstår i kode som denne:

spam = "DETTE ER MED SMÅ BOGSTAVER."
spam = spam.lowerr()

10) Referencer overstiger listens maksimale indeks (hvilket resulterer i "IndexError: liste indeks uden for intervallet")

        Fejlen opstår i kode som denne:

spam = ["kat", "hund", "mus"]
print(spam[6])

11) Brug af en ordbogsnøgleværdi, der ikke eksisterer (hvilket resulterer i "KeyError: 'spam'")

        Fejlen opstår i kode som denne:

spam = {"cat": "Zophie", "dog": "Basil", "mouse": "Whiskers"}
print("Mit kæledyrs zebra hedder " + spam["zebra"])

12) Forsøg på at bruge Python-nøgleordet som variabelnavn (hvilket resulterer i "SyntaxError: invalid syntax")

        Python-nøglen kan ikke bruges som variabelnavn, fejlen opstår i kode som denne:

klasse = "algebra"

Python3-nøgleordene er: og, som, assert, break, class, continue, def, del, elif, else, except, False, endly, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, Sandt, prøv, mens med, giv efter


13) Brug af værdiskabende operatorer i en defineret ny variabel (hvilket resulterer i "NameError: name "foobar" er ikke defineret")

        Brug ikke 0- eller nullstrenge som startværdier, når du erklærer variable, så en sætning spam += 1 med den selv-inkrementerende operator er lig med spam = spam + 1, hvilket betyder, at spam skal angive en gyldig startværdi.

        Fejlen opstår i kode som denne:

spam = 0
spam += 42
æg += 42

14) Brug lokale variable i funktioner, før lokale variable defineres (i dette tilfælde findes der en global variabel med samme navn som den lokale variabel) (hvilket resulterer i "UnboundLocalError: lokal variabel "foobar" refereret før tildelingen")

        Det er kompliceret at bruge en lokal variabel i en funktion med samme navn som en global variabel, og brugsreglerne er: hvis noget er defineret i en funktion, hvis det kun bruges i funktionen, er det lokalt, og omvendt.

        Det betyder, at du ikke kan bruge den i en funktion som en global variabel, før du definerer den.

        Fejlen opstår i kode som denne:

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

15) Forsøg på at oprette en heltalsliste med range() (hvilket resulterer i "TypeError: "range"-objektet understøtter ikke elementtildeling)

        Nogle gange vil man gerne have en ordnet liste af heltal, så range() virker som en god måde at generere denne liste på. Du skal dog huske, at range() returnerer et "range-objekt", ikke den faktiske listeværdi.

        Fejlen opstår i kode som denne:

spam = rækkevidde(10)
spam[4] = -1

Måske er det det, du vil gøre:

spam = liste(interval(10))
spam[4] = -1
(Bemærk: spam = range(10) virker i Python 2, fordi range() i Python 2 returnerer en listeværdi, men i Python 3 genereres ovenstående fejl)

16) Nice i ++ eller -- selvinkrementerende operator. (Resulterende i "SyntaxError: ugyldig syntaks")

        Hvis du er vant til andre sprog som C++, Java, PHP osv., kan du prøve at bruge ++ eller -- inkrementere og trække en variabel fra. Der findes ikke en sådan operator i Python.

        Fejlen opstår i kode som denne:

spam = 1
spam++

Måske er det det, du vil gøre:

spam = 1
spam += 1

17) Glemte at tilføje selvparameteren til det første argument i metoden (hvilket resulterede i "TypeError: myMethod() takes no arguments (1 given)")

        Fejlen opstår i kode som denne:

klasse Foo():
    def myMethod():
        print ("Hej!")
a = Foo()
a.myMethod()





Tidligere:WiFi trådløs cracking-software + vejledning (vanddråbe)
Næste:【iOS Development Series Tutorial udgivet om sommeren】IOS-projektets kildekode
Opslået på 05/12/2015 13.34.16 |
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com