Merkkijonon muuntaminen kokonaisluvuksi Pythonilla



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tietämyksen merkkijonon muuttamisesta kokonaisluvuksi eri tavoin esimerkkien avulla.

Tässä aiheessa kerrotaan, kuinka muuntaa merkkijono kokonaisluvuksi sisäänrakennetun tietotyypin kanssa tai ilman sitä. Tiedämme, että merkkijono on sarja merkkejä, jotka on järjestetty peräkkäin lainausmerkkeihin, ja kokonaisluku on luku ilman desimaalipisteitä eikä sitä ole liitetty minkään tyyppisiin lainausmerkeihin.

Merkkijono kokonaislukuun python





Mutta kun tulee kysymys yhden tietotyypin muuntamisesta toiseen, Python tarjoaa helpon tavan muuntaa ne toisiinsa. Tässä tapauksessa näemme, kuinka voimme muuntaa merkkijonon kokonaisluvuksi seuraavassa järjestyksessä:

Sisäisten tietotyyppien käyttö



Oletetaan, että kun otan syötteen käyttäjältä jostain syystä, Python ottaa sen ja palauttaa sen itse merkkijonona. Toisin sanoen, vaikka joku kirjoittaa numeron syötteeksi, Python palauttaa sen merkkijonona.

nimi = syöte ('Mikä on nimesi:') tulosta (nimi) tulosta (tyyppi (nimi)) ikä = syöte ('Mikä on ikäsi:') tulosta (ikä) tulosta (tyyppi (ikä))

Tuotos:

Mikä on nimesi: Tyra



Tyra

Mikä on ikäsi: 20

kaksikymmentä

Joten näet syötteenä käytetyn nimen tyypin ja iän olevan merkkijono.

Oletetaan, että jos haluamme lisätä ikään 5, teemme seuraavat:

nimi = syöte ('Mikä on nimesi:') tulosta (nimi) tulosta (tyyppi (nimi)) ikä = syöte ('Mikä on ikäsi:') tulosta (ikä) tulosta (tyyppi (ikä)) tulosta (ikä + 5)

Tuotos:

Mikä on nimesi: Tyra

Tyra

edellytykset koneoppimisen oppimiselle

Mikä on ikäsi: 20

kaksikymmentä

Seuranta (viimeisin puhelu viimeisin):

Tiedosto C: /Users/prac.py, rivi 9, sisään

tulosta (ikä + 5)

TypeError: täytyy olla str, ei int

Emme voi lisätä ikää 5, koska ikä on tyypin String emmekä voi tehdä suoraa matematiikkaa jousilla. Joten meidän on muutettava ikä kokonaisluvuksi, koska olemme ottaneet iän syötteeksi ja Python palauttaa sen merkkijonoksi.

Siten.

nimi = syöte ('Mikä on nimesi:') tulosta (nimi) tulosta (tyyppi (nimi)) ikä = syöte ('Mikä on ikäsi:') tulosta (ikä) tulosta (tyyppi (ikä)) ikä = int ( ikä) tulosta (ikä + 5)

Tuotos:

Mikä on nimesi: Tyra

Tyra

Mikä on ikäsi: 20

kaksikymmentä

25

Perinteinen tapa

Oletetaan, että emme halua käyttää sisäänrakennettua funktiota int () muuntaa merkkijono kokonaisluvuksi.Joten meidän on käytettävä tavanomaisella tavalla muuntaa.

Tässä on yksinkertainen tapa siirtyä muunnokseen int () käyttämättä.

'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0, jos input_str [0] == '-': start_idx = 1 is_negative = Tosi muu: start_idx = 0 is_negative = Väärä arvolle i alueella (start_idx, len (input_str)): paikka = 10 ** (len (input_str) - (i + 1)) numero = ord (input_str [i]) - ord ('0') output_int + = paikka * numero, jos on_negatiivinen: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = '-123' tulosta (str_to_int (s))

Tuotos:

123

-123

  • Ensin tarkistamme, sisältääkö käyttäjän antama numero miinusmerkin vai ei, eli onko se negatiivinen vai ei.Jos se sisältää miinusmerkin ensimmäisessä sijainnissa, aloitamme muuntamisen toisesta numeroita sisältävästä sijainnista.

  • Mikä tahansa numero, sanotaan 123, voidaan kirjoittaa muotoon -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • Samoin jaetaan kukin syötetty numero käyttämällä sana (argumentti) .

  • ord (’0’) palauttaa 48, ord (’1’) palauttaa 49 jne.

  • Tässä käytämme logiikkaa, että ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 jne., Mikä antaa meille merkittävän määrän, joka haetaan annetusta syöttönumero.

  • Viimeinkin funktiosta saatu tulos on legit-kokonaisluku, jonka muunnimme annetusta syötemerkkijonosta.

Joten kuten näette, voimme muuntaa minkä tahansa merkkijonon kokonaisluvuksi joko int () -funktiolla tai tavanomaisella tavalla.

Toivon, että olet oppinut käsitteet hyvin ja kokeillut sitä tarkemmaksi, ja tämän myötä olemme päässeet tämän artikkelin merkkijonon muuntamiseen int-muotoon Pythonin avulla.

Onko sinulla kysymys meille? Mainitse se tämän String to Integer -opetusohjelman kommenttiosassa, ja palaamme sinuun mahdollisimman pian.

Saadaksesi syvällistä tietoa Pythonista sen eri sovellusten kanssa, voit ilmoittautua livenä 24/7 -tuella ja käyttöikä.