Python String to Int: Kuinka muuntaa merkkijono kokonaisluvuksi Pythonissa

Toisin kuin monet muut siellä olevat ohjelmointikielet, Python ei implisiittisesti kirjoita kokonaislukuja (tai kelluvia) merkkijonoihin, kun liität ne merkkijonoiksi.

Onneksi Pythonissa on kätevä sisäänrakennettu toiminto, str()joka muuntaa välitetyn argumentin merkkijonomuotoon.

Väärä tapa muuntaa merkkijono kokonaisluvuksi Pythonissa

Muilta ohjelmointikieliltä tulevat ohjelmoijat voivat yrittää tehdä seuraavan merkkijonon ketjutuksen, mikä aiheuttaa virheen:

age = 18 string = "Hello, I am " + age + " years old"

Voit suorittaa tämän koodin osoitteessa repl.it.

Näkyvissä oleva virhe on:

Traceback (most recent call last): File "python", line 3, in  TypeError: must be str, not int

Tässä TypeError: must be str, not intosoittaa, että kokonaisluku on ensin muunnettava merkkijonoksi, ennen kuin se voidaan liittää.

Oikea tapa muuntaa merkkijono kokonaisluvuksi Pythonissa

Tässä on yksinkertainen ketjutusesimerkki:

age = 18 print("Hello, I am " + str(age) + " years old") # Output # Hello, I am 18 years old

Voit suorittaa tämän koodin osoitteessa repl.it.

Näin tulostat 1 2 3 4 5 6 7 8 9 10yhdellä merkkijonolla:

result = "" for i in range(1, 11): result += str(i) + " " print(result) # Output # 1 2 3 4 5 6 7 8 9 10

Voit suorittaa koodin osoitteessa repl.it.

Tässä on rivi riviltä selitys yllä olevan koodin toiminnasta:

  1. Ensinnäkin muuttuja 'result' määritetään tyhjälle merkkijonolle.
  2. For-silmukkaa käytetään iteroimaan numeroluettelon yli.
  3. Tämä numeroluettelo luodaan käyttämällä aluefunktiota.
  4. joten alue (1,11) luo luettelon numeroista 1-10.
  5. Jokaisella silmukan iteroinnilla tämä 'i' -muuttuja vie arvot 1-10.
  6. Ensimmäisellä iteraatiolla, kun muuttuja i = 1, sitten muuttuja [tulos = tulos + str (i) + “(välilyönti)”], str (i) muuntaa kokonaisluvun 'i' merkkijonoksi.
  7. Koska i = 1, ensimmäisellä iteraatiolla lopulta tulos = 1.
  8. Ja sama prosessi jatkuu, kunnes i = 10 ja viimeisen iterointituloksen jälkeen = 1 2 3 4 5 6 7 8 9 10.
  9. Siksi kun tulostamme lopulta tuloksen for-silmukan jälkeen, konsolin lähtö on '1 2 3 4 5 6 7 8 9 10'.

Toivottavasti olet löytänyt tämän hyödyllisen. Hyvää koodausta.