Python typeerror

Python typeerror

I denne artikkelen vil vi lære hva TypeError er i Python, hva som forårsaker det, og hvordan vi kan løse eller fikse typefeil i Python. Python beskrives som et programmeringsspråk på høyt nivå som er objektorientert og ble utviklet av Guido Van Rossum. Python er et støttespråk for programvareutviklere og brukes til byggekontroll, testadministrasjon osv. Flere feil eller unntak kan oppstå mens du håndterer data i Python -programmering, så denne artikkelen vil bidra til å belyse et av unntakene i Python kalt TypeError.

Hva er en feil i Python -typen?

En feil i Python -typen er en anomali eller uregelmessighet som oppstår når et objekt i en datatype er uegnet for operasjoner. Denne typen feil oppstår når en operasjon utføres på et objekt som ikke er egnet for data eller dataene ikke støtter objektet. Med andre ord, TypeError representerer en feil som blir reist når en funksjon eller operasjon ikke kan utføres og operasjonen blir tvunget til et objekt av en upassende type. Et eksempel vil være at når du bruker + (tillegg) -operasjonen på en strengtype, vil feilen bli økt med en heltallverdi.

Hva forårsaker en feil i Python -typen?

Typeerror er et av flere unntak i standard Python. Som nevnt tidligere, blir denne feilen reist når en operasjon utføres på feil type objekt. Det er flere vanlige årsaker til typeerror i Python. Noen av disse er beskrevet nedenfor:

Ikke støttet operasjoner mellom to typer

Denne feilen oppstår når du utfører mellom to inkompatible eller ikke -støttede datatyper.

For å forklare vil vi bruke eksemplet på variabelen 'My_str', som er en 'streng' og variabelen '12', som er et heltall. Du kan ikke bruke + (tillegg) -operasjonen mellom de to fordi de ikke støtter hverandre. For å forklare, vet vi at et heltall enten kan legges til et annet heltall eller et desimaltall, og vi kan ikke legge til et heltall til et strengobjekt eller en variabel.

Hvis vi oppgir følgende data for å legge til et heltall med en streng, får vi følgende:

my_str = "Velkommen"
my_num = 12
print (my_str + my_num + my_str)

En typeerror oppstår hvis en matematisk operasjon utføres eller aktiveres mellom objekter som ikke støtter den. Resultatet av de utførte dataene vil vise en type feil, og utgangen vil være:

Denne utgangen viser at typefeilen er en streng og ikke et heltall fordi et heltall ikke er kompatibelt med en streng. I eksemplet ovenfor prøver strengen “Welcome” å legge til heltallet “12”, og siden tillegget ikke kan utføres mellom de to forskjellige typene, oppstår en type feil.

Ringer en ikke-kallbar identifikator

En annen årsak til typeerror er en oppfordring til et ikke-kallbart objekt, for eksempel et heltall. Strengen for 'Python er veldig enkel å lære!!"Inneholdt i" My_Message "-variabelen er ikke-kallbar i dette tilfellet og vil kaste en typefeil når du blir kalt i en utskriftsuttalelse.

my_message = "python er veldig enkel å lære!!""
Print (My_Message ())

I Python kalles enhver funksjon eller metode, med en implementering. Akkurat som en hvilken som helst funksjon eller metode, kan vi kalle et kallbart objekt. Så hvis et heltall som er et ikke-kallbart objekt kalles, blir en typeerror reist. Utgangen for kommandoen ovenfor vil se slik ut:

Dette resultatet indikerer at strengobjektet ikke kan kalles. Eksemplet viser at strengen 'Python er veldig enkel å lære' ikke kan ringes når utskriftserklæringen blir utført, da det er en ikke-kallbar sak i denne sammenhengen.

Ugyldig listeindekstype

En type feil reises når en feil type sendes til en innebygd funksjon. I Python er listeindekser pålagt alltid å være et heltall. For å forstå dette, antar at vi ønsker å lage en liste over elementer, la oss si Apple, Watch, Ring, Nails og Bag. Nå, når vi setter inn dataene og skriver ut verdien, får vi en typeerror. Som vi vet, er det meningen at indeksene enten skal være i form av heltall eller desimaltall, hvis en streng brukes, vil det oppstå en feil.

My_list = ["Apple", "Watch", "Ring", "Nails", "Bag"]
index_num = "2"
trykk ("Her er den originale listen:")
print (my_list)
trykk ("Her er resultatet:")
print (my_list [index_num])

I eksemplet ovenfor, fordi koden til indeksverdien er gitt i en streng, heves en type feil. Følgende er utgangen fra den utførte kommandoen:

I dette tilfellet får vi en typeerror fordi en strengtype blir oppdaget i indeksverdien når vi vet at bare heltall eller desimaler skal brukes til indekser. På grunn av feilen som vises på utdataene, må indeksene være i form av heltall eller skiver, ellers blir en type feil heves.

Hvordan du løser typefeil?

Feil av noe slag kan ikke unngås i et program, men deres forekomst kan alltid minimeres. For å minimere forekomsten av feil, kan vi sjekke datatypene til operandene, noe som vil bidra til å unngå operasjoner med inkompatible datatyper. Variabler, klasser og funksjoner i et program bør også gis riktige navn for å hjelpe deg med å unngå å ringe ikke-kallbare objekter. En annen måte å unngå feilen er at objekttypen skal sjekkes før operasjonen utføres. Dette vil bidra til at operasjonen er passende for objektet og objektet som støtter operasjonen. Hvis vi bruker et av eksemplene ovenfor, vil vi legge til ett trinn til det, det vil være:

My_list = ["Apple", "Watch", "Ring", "Nails", "Bag"]
index_val = [0, "1", 2, 3]
for jeg i rekkevidde (len (index_val)):
prøve:
print (my_list [index_val [i]])
unntatt typeerror:
Print ("TypeError: Sjekkliste over indekser")

Utgangen for denne kommandoen vil være:

Dette viser at når noen indeks viser seg å være av feil type, vil det oppstå en feil, og den gitte koden vil håndtere den. Denne sjekken vil bidra til å avgjøre om en av dem ikke er et heltall, og hvorfor feilen vil oppstå hvis ikke korrigert.

Konklusjon

Denne artikkelen handler om feil i Python -typen, og i dette har vi lært på en forenklet måte med eksempler på hvilken type feil som er i Python og hva som forårsaker den og hvordan du kan unngå det. Selv om det noen ganger er uunngåelig å gjøre feil, er det bedre å håndtere feilen før den skjer og være klar over årsakene til Typeerror. Som nevnt ovenfor, er en typeerror et unntak som oppstår når programmereren spesifiserer en feil objekttype for en operasjon.