Kuidas teisendada stringid täisarvudeks Pythonis

Sarnaselt sisseehitatud str()meetodile pakub Python ka käepärast int()meetodit, mis võtab stringiobjekti argumendiks ja tagastab täisarvu.

Kasutamise näide:

# Here age is a string object age = "18" print(age) # Converting a string to an integer int_age = int(age) print(int_age)

Väljund:

18 18

Kuigi väljund on visuaalselt sarnane, pidage meeles, et esimene rida on stringiobjekt, järgmine rida on aga täisarvuline objekt. Seda illustreerib veelgi järgmine näide:

age = "18" print(age + 2)

Väljund:

Traceback (most recent call last): File "", line 1, in  TypeError: cannot concatenate 'str' and 'int' objects

Viga peaks teile selgeks tegema, et ageenne millegi lisamist peate objekti teisendama täisarvuks.

age = "18" age_int = int(age) print(age_int + 2)

Väljund:

20

Kuid pidage meeles neid erijuhtumeid:

  • Ujuv punkt (murdosa sisaldav täisarv) tagastab ujuki ümardatuna lähima täisarvuni. Näiteks: print(int(7.9))prindib 7. Teiselt poolt print(int("7.9"))toob see kaasa vea, kuna ujukit stringiobjektina ei saa teisendada täisarvuks.
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: '7.9'
  • Argumendina antud sõnad tagastavad sama vea. Näiteks print(int("one"))tagastab:
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: 'one'