Lær typecasting i Python på fem minutter

Et crashkursus om Typecasting og Type-konvertering i Python på en meget ikke-ordentlig måde

Type Casting

Processen med at konvertere en datatype til en anden datatype kaldes Typecasting eller Type Coercion eller Type Conversion .

Emnerne, som jeg vil fokusere på i denne artikel, er:

  1. Implicit type konvertering
  2. Eksplicit type konvertering
  3. Fordele
  4. Ulemper

Implicit type konvertering

Når typekonvertering udføres automatisk af tolken uden programmørens indblanding, betegnes den type konvertering som implicit typekonvertering .

Eksempel på program:

myInt = 143 # Integer value.myFloat = 1.43 # Float value.
myResult = myInt + myFloat # Sum result
print("datatype of myInt:",type(myInt))print("datatype of myFloat:",type(myFloat))
print("Value of myResult:",myResult)print("datatype of myResult:",type(myResult))

Produktion:

Output for ovenstående program vil være:

datatype of myInt: datatype of myFloat: Value of myResult: 144.43datatype of myResult: 

I ovenstående program,

  • Vi tilføjer to variabler myInt og myFloat, hvor vi gemmer værdien i myResult.
  • Vi vil se på datatypen for henholdsvis alle tre objekter.
  • I output kan vi se datatypen for myInt er en integer, datatypen for myFloat er en float.
  • Vi kan også se, at myFloat har floatdatatype, fordi Python konverterer mindre datatype til større datatype for at undgå tab af data.

Denne type konvertering kaldes Implicit Type conversion (eller) UpCasting .

Eksplicit type konvertering

I Konvertering af eksplicit type konverterer brugerne datatypen for et objekt til den krævede datatype. Vi bruger foruddefinerede indbyggede funktioner som:

  1. int ()
  2. flyde()
  3. kompleks ()
  4. bool ()
  5. str ()

Syntaksen for eksplicit typekonvertering er:

(required_datatype)(expression)

Denne type konvertering kaldes Explicit Type conversion (eller) DownCasting .

Int konvertering

Vi kan bruge denne funktion til at konvertere værdier fra andre typer til int.

For eksempel:

>>> int(123.654)123
>>>int(False)0
>>> int("10")10
>>> int("10.5")ValueError: invalid literal for int() with base 10: '10.5'
>>> int("ten")ValueError: invalid literal for int() with base 10: 'ten'
>>> int("0B1111")ValueError: invalid literal for int() with base 10: '0B1111'
>>> int(10+3j)TypeError: can't convert complex to int

Bemærk:

  1. Du kan ikke konvertere kompleks datatype til int
  2. Hvis du vil konvertere strengetype til int-type, skal strengen bogstaveligt indeholde værdien i Base-10

Flydekonvertering

Denne funktion bruges til at konvertere enhver datatype til et flydende nummer.

For eksempel:

>>> float(10) 10.0
>>> float(True)1.0
>>> float(False)0.0
>>> float("10")10.0
>>> float("10.5")10.5
>>> float("ten")ValueError: could not convert string to float: 'ten'
>>> float(10+5j)TypeError: can't convert complex to float
>>> float("0B1111")ValueError: could not convert string to float: '0B1111'

Bemærk:

  1. Du kan konvertere kompleks type til float-type værdi.
  2. Hvis du vil konvertere strengetype til float-type, skal strengen bogstaveligt indeholde værdien i base-10.

Kompleks konvertering

Denne funktionbruges til at konvertere reelle tal til et komplekst (rigtigt, imaginært) tal.

Form 1: kompleks (x)

Du kan bruge denne funktion til at konvertere en enkelt værdi til et komplekst tal med reel del x og imaginær del 0.

For eksempel:

>>> complex(10)10+0j
>>> complex(10.5)10.5+0j
>>> complex(True)1+0j
>>> complex(False)0+0j
>>> complex("10")10+0j
>>> complex("10.5")10.5+0j
>>> complex("ten")ValueError: complex() arg is a malformed string

Form 2: kompleks (x, y)

Hvis du vil konvertere X og Y til et komplekst tal, således at X vil være en reel del, og Y vil være en imaginær del.

For eksempel:

>>> complex(10,-2)10-2j
>>> complex(True, False)1+0j

Boolsk konvertering

Denne funktion bruges til nemt at konvertere enhver datatype til boolsk datatype. Det er den mest fleksible datatype i Python.

For eksempel:

>>> bool(0)False
>>> bool(1)True
>>> bool(10)True
>>> bool(0.13332)True
>>> bool(0.0)False
>>> bool(10+6j)True
>>> bool(0+15j)True
>>> bool(0+0j)False
>>> bool("Apple")True
>>> bool("")False
Bemærk: Ved hjælp af bool-funktionen kan du konvertere en hvilken som helst datatype til boolesk, og output vil være - For alle værdier vil det producere True undtagen 0, 0 + 0j og for en tom streng.

Strengkonvertering

Denne funktion bruges til at konvertere en hvilken som helst type til en strengtype.

For eksempel:

>>> str(10)'10'
>>> str(10.5)'10.5'
>>> str(True)'True'
>>> str(False)'False'
>>> str(10+5j)'10+5j'
>>> str(False)'False'

Eksempel på program:

integer_number = 123 # Intstring_number = "456" # String
print("Data type of integer_number:",type(integer_number))print("Data type of num_str before Type Casting:",type(num_str))
string_number = int(string_number)print("Data type of string_number after Type Casting:",type(string_number))
number_sum = integer_number + string_number
print("Sum of integer_number and num_str:",number_sum)print("Data type of the sum:",type(number_sum))

Produktion:

Når vi kører ovenstående program, vil output være:

Data type of integer_number: Data type of num_str before Type Casting: Data type of string_number after Type Casting: Sum of integer_number and num_str: 579Data type of the sum: 

I ovenstående program,

  • Vi tilføjer variabel string_number og integer_number.
  • Vi konverterede streng_nummer fra streng (højere) til heltal (lavere) type ved hjælp af int()funktionen til at udføre tilføjelse.
  • Efter konvertering af strengnummer til en heltalsværdi tilføjer Python disse to variabler.
  • Vi fik antal_sumværdien og datatypen til at være et heltal.

Fordele ved typecasting

  1. Mere praktisk at bruge

Ulemper ved typecasting

  1. Mere kompleks type system
  2. Kilde til fejl på grund af uventede kaster

Jeg dækkede stort set alt, hvad der kræves for at udføre enhver form for typecasting-operation i Python3.

Håber dette hjalp dig med at lære om Python Typecasting på en hurtig og nem måde.

Hvis du kunne lide denne artikel, skal du klikke på klappen og give mig din værdifulde feedback.