Android

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

Harvard CS50 lecture 1

Harvard CS50 lecture 1

Πίνακας περιεχομένων:

Anonim

Όλοι οι τύποι δεδομένων στην Python, συμπεριλαμβανομένων των ακέραιων αριθμών και των συμβολοσειρών, είναι αντικείμενα. Συχνά όταν γράφετε κώδικα Python, θα χρειαστεί να μετατρέψετε έναν τύπο δεδομένων σε άλλον. Για παράδειγμα, για να εκτελέσετε μια εργασία μαθηματικών σε έναν αριθμό που αντιπροσωπεύεται ως συμβολοσειρά, πρέπει να μετατραπεί σε ακέραιο αριθμό.

Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να μετατρέψετε μια συμβολοσειρά Python σε έναν ακέραιο αριθμό.

Python int() Λειτουργία

Η ενσωματωμένη συνάρτηση int() επιστρέφει ένα δεκαδικό ακέραιο αντικείμενο από έναν δεδομένο αριθμό ή συμβολοσειρά. Έχει την ακόλουθη μορφή:

int(x, base=10)

Η συνάρτηση `accepts two arguments:

  • x - Σειρά ή αριθμός που πρέπει να μετατραπεί σε ακέραιο αριθμό. base - Αντιπροσωπεύει το σύστημα αριθμών του πρώτου επιχειρήματος. Η τιμή του μπορεί να είναι 0 και 2-36. Αν δεν υπάρχει βάση, η προεπιλογή είναι 10 (δεκαδικό ακέραιο).

Συνήθως, οι ακέραιοι αριθμοί εκφράζονται σε δεκαεξαδικό (βάση 16), δεκαδικό (βάση 10), οκταδικό (βάση 8) ή δυαδική (βάση 2) ​​σημείωση.

Εάν το δεδομένο επιχείρημα δεν μπορεί να αναπαρασταθεί ως ακέραιος αριθμός, η συνάρτηση θα ρίξει μια εξαίρεση ValueError .

Μετατροπή μιας συμβολοσειράς Python σε ακέραιο

Στην Python, μια "συμβολοσειρά" είναι ένας κατάλογος χαρακτήρων ο οποίος δηλώνεται χρησιμοποιώντας μονά ( ' ), διπλά ( " ) ή τριπλά εισαγωγικά ( """ ).

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

days = "23" type(days)

Η συνάρτηση type() μας δείχνει ότι οι days είναι ένα αντικείμενο String.

Ας προσπαθήσουμε να κάνουμε μια εργασία μαθηματικών για τη μεταβλητή:

print(days+5)

Η Python θα πετάξει ένα σφάλμα εξαίρεσης TypeError επειδή δεν μπορούμε να εκτελέσουμε έναν υπολογισμό προσθήκης με συμβολοσειρά και ακέραιο:

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

Για να μετατρέψετε μια συμβολοσειρά συμβόλων ενός δεκαδικού ακέραιου σε int , περάστε τη συμβολοσειρά στη συνάρτηση int() , η οποία επιστρέφει έναν δεκαδικό ακέραιο αριθμό:

days = "23" days_int = int(days) type(days_int)

print(days_int+5)

28

Αν ο αριθμός περιέχει κόμματα, σημειώνοντας χιλιάδες, εκατομμύρια κ.λπ., πρέπει να αφαιρέσετε τις κόμματα πριν περάσετε τον αριθμό στη λειτουργία int() :

total = "1, 000, 000" int(total.replace(", ", ""))

1000000

Κατά τη μετατροπή συμβολοσειρών που αντιπροσωπεύουν ακέραιους αριθμούς σε διαφορετικά συστήματα αριθμών, βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή base .

Για παράδειγμα, στο δεκαεξαδικό σύστημα, ο αριθμός 54732 αναπαρίσταται ως D5CF . Για να το μετατρέψετε σε δεκαδικό ακέραιο πρέπει να χρησιμοποιήσετε τη βάση 16:

int("D5CF", 16)

54735

Αν περάσετε τη συμβολοσειρά D5CF στη συνάρτηση int() χωρίς να ορίσετε μια βάση, θα ρίξει μια εξαίρεση ValueError :

int("D5CF")

Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF'

συμπέρασμα

Στην Python, μπορείτε να μετατρέψετε μια συμβολοσειρά σε έναν ακέραιο χρησιμοποιώντας τη συνάρτηση int() .

Πύθων