Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 13564|Svare: 1

[Kommunikasjon] 17 vanlige Python-kjøretidsfeil for nybegynnere

[Kopier lenke]
Publisert på 05.12.2015 13:08:56 | | |

Når man lærer Python, kan det være litt komplisert å forstå betydningen av Pythons feilmeldinger. Her er en liste over noen vanlige kjøretidsfeil som får programmet ditt til å krasje.


1) Glemte å legge til :( på slutten av if, elif, ellers, for, while, time, def def def.

        Feilen vil oppstå i kode som dette:

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

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

        = er tilordningsoperatoren og == er lik sammenligningsoperasjonen.Feilen oppstår i kode som dette:

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

3) Feil bruk av innrykk. (Dette resulterer i "Innrykkfeil: uventet innrykk", "InnrykningFeil: innrykk samsvarer ikke med noe ytre indetasjonsnivå", og "Innrykkfeil: forventet en innrykket blokk")

        Husk at innrykk kun brukes etter setninger som slutter med: hvoretter innrykksformatet må tilbakeføres til det forrige innrykksformatet. Feilen oppstår i kode som dette:

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

4) Glemmer å kalle len() i for loop-setningen (noe som resulterer i "TypeError: "list"-objektet kan ikke tolkes som et heltall")

Vanligvis vil du iterere over en liste eller streng gjennom en indeks, noe som krever at du kaller range()-funksjonen. Husk å returnere len-verdien i stedet for å returnere denne listen.

        Feilen oppstår i kode som dette:

spam = ["katt", "hund", "mus"]
For i innen rekkevidde (spam):
    Skriv ut (spam)

5) Prøv å endre verdien til strengen (noe som resulterer i "TypeError: "str"-objektet støtter ikke elementtildeling")

        String er en uforanderlig datatype, og feilen oppstår i kode som dette:

spam = "Jeg har en katt."
spam[13] = "r"
Skriv ut (spam)

Og du vil faktisk gjøre dette:

spam = "Jeg har en katt."
spam = spam[:13] + "r" + spam[14:]
Skriv ut (spam)

6) Forsøk på å sammensette ikke-streng-verdier med strenger (noe som resulterer i "TypeError: Can"t convert "int"-objekt til str implisitt")

        Feilen oppstår i kode som dette:

numEggs = 12
print ("Jeg har " + numEgg + " egg.")

Og du vil faktisk gjøre dette:

numEggs = 12
print("Jeg har " + str(numEggs) + " eggs.")
Eller:
numEggs = 12
print("Jeg har %s egg." % (numEggs))

7) Glemmer å sette anførselstegn i begynnelsen og slutten av strengen (noe som resulterer i "SyntaxError: EOL while can string literal")

        Feilen oppstår i kode som dette:

print (Hallo!")
Eller:
print ("Hallo!)
Eller:
myName = "Al"
print("Mitt navn er " + mittnavn + . Hvordan har du det?")

8) Feilstaving av variabel- eller funksjonsnavn (som resulterer i "NameError: name "fooba" er ikke definert")

        Feilen oppstår i kode som dette:

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

9) Feilstaving av metodenavn (som resulterer i "AttributeError: "str"-objektet har ikke attributt "lowerr"")

        Feilen oppstår i kode som dette:

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

10) Referanser overstiger listens maksimale indeks (noe som resulterer i "IndexError: list index out of range")

        Feilen oppstår i kode som dette:

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

11) Bruk av en ordboknøkkelverdi som ikke eksisterer (noe som resulterer i "KeyError: 'spam'")

        Feilen oppstår i kode som dette:

spam = {"cat": "Zophie", "dog": "Basil", "mouse": "Whiskers"}
print ("Navnet på min kjæledyr-sebra er " + spam["zebra"])

12) Forsøk på å bruke Python-nøkkelord som variabelnavn (resulterer i "SyntaxError: invalid syntax")

        Python-nøkkelen kan ikke brukes som variabelnavn, feilen oppstår i kode som dette:

klasse = "algebra"

Python3-nøkkelordene er: og, som, assert, break, class, continue, def, del, elif, else, except, False, tilslutt, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, Sant, prøv, mens, med, gi etter


13) Bruk av verdiøkende operatorer i en definert ny variabel (som resulterer i "NameError: name "foobar" er ikke definert")

        Ikke bruk 0- eller nullstrenger som startverdier når du erklærer variabler, slik at en setningspam += 1 med selvinkrementerende operator er lik spam = spam + 1, noe som betyr at spam må spesifisere en gyldig startverdi.

        Feilen oppstår i kode som dette:

spam = 0
spam += 42
egg += 42

14) Bruk lokale variabler i funksjoner før du definerer lokale variabler (i dette tilfellet finnes det en global variabel med samme navn som den lokale variabelen) (noe som resulterer i "UnboundLocalError: lokal variabel "foobar" referert til før tildeling")

        Det er komplisert å bruke en lokal variabel i en funksjon med samme navn som en global variabel, og bruksreglene er: hvis noe er definert i en funksjon, hvis det kun brukes i funksjonen, er det lokalt, og omvendt.

        Dette betyr at du ikke kan bruke den i en funksjon som en global variabel før du definerer den.

        Feilen oppstår i kode som dette:

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

15) Forsøk på å lage en heltallsliste med range() (som resulterer i "TypeError: "range"-objektet støtter ikke elementtildeling)

        Noen ganger vil du ha en ordnet liste med heltall, så range() virker som en god måte å generere denne listen på. Men du må huske at range() returnerer et "range-objekt", ikke den faktiske listeverdien.

        Feilen oppstår i kode som dette:

spam = rekkevidde(10)
spam[4] = -1

Kanskje dette er det du vil gjøre:

spam = liste(rekkevidde(10))
spam[4] = -1
(Merk: spam = range(10) fungerer i Python 2, fordi range() i Python 2 returnerer en listeverdi, men i Python 3 genereres feilen ovenfor)

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

        Hvis du er vant til andre språk som C++, Java, PHP osv., kan du prøve å bruke ++ eller -- øke og trekke fra en variabel. Det finnes ingen slik operator i Python.

        Feilen oppstår i kode som dette:

spam = 1
spam++

Kanskje det er det du vil gjøre:

spam = 1
spam += 1

17) Glemte å legge til selvparameteren til det første argumentet i metoden (noe som resulterte i "TypeError: myMethod() tar ingen argumenter (1 gitt)")

        Feilen oppstår i kode som dette:

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





Foregående:WiFi-programvare for trådløs knekking + veiledning (vanndråpe)
Neste:【iOS utviklingsserie veiledning utgitt om sommeren】IOS-prosjektets kildekode
Publisert på 05.12.2015 13:34:16 |
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com