Πώς να μετατρέψετε συμβολοσειρές σε ακέραιους αριθμούς στο Python

Παρόμοια με την ενσωματωμένη str()μέθοδο, η Python προσφέρει επίσης την εύχρηστη int()μέθοδο που παίρνει ένα αντικείμενο συμβολοσειράς ως όρισμα και επιστρέφει έναν ακέραιο.

Παράδειγμα χρήσης:

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

Παραγωγή:

18 18

Αν και η έξοδος είναι οπτικά παρόμοια, λάβετε υπόψη ότι η πρώτη γραμμή είναι αντικείμενο συμβολοσειράς, ενώ η ακόλουθη γραμμή είναι ακέραιο αντικείμενο. Αυτό απεικονίζεται περαιτέρω στο επόμενο παράδειγμα:

age = "18" print(age + 2)

Παραγωγή:

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

Το σφάλμα θα πρέπει να σας καταστήσει σαφές ότι πρέπει να μετατρέψετε το ageαντικείμενο σε ακέραιο πριν προσθέσετε κάτι σε αυτό.

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

Παραγωγή:

20

Αλλά λάβετε υπόψη αυτές τις ειδικές περιπτώσεις:

  • Ένα κυμαινόμενο σημείο (ακέραιος με κλασματικό μέρος) ως όρισμα θα επιστρέψει το πλωτήρα στρογγυλευμένο προς τα κάτω στον πλησιέστερο ακέραιο ακέραιο. Για παράδειγμα: print(int(7.9))θα εκτυπωθεί 7. Από την άλλη πλευρά, print(int("7.9"))θα οδηγήσει σε σφάλμα αφού ένα float ως αντικείμενο συμβολοσειράς δεν μπορεί να μετατραπεί σε ακέραιο.
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: '7.9'
  • Οι λέξεις που δίνονται ως όρισμα θα επιστρέψουν το ίδιο σφάλμα. Για παράδειγμα, print(int("one"))θα επιστρέψει:
Traceback (most recent call last): File "", line 1, in  ValueError: invalid literal for int() with base 10: 'one'