Πώς να μετατρέψετε μια συμβολοσειρά σε ακέραιο χρησιμοποιώντας Python



Αυτό το άρθρο θα σας δώσει μια λεπτομερή και περιεκτική γνώση του τρόπου μετατροπής μιας συμβολοσειράς σε ακέραιο με διάφορους τρόπους με παραδείγματα.

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

String to integer python





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

Χρήση ενσωματωμένων τύπων δεδομένων



Ας υποθέσουμε ότι όταν λαμβάνω πληροφορίες από τον χρήστη για κάποιο λόγο, η Python την παίρνει και την επιστρέφει ως ίδια συμβολοσειρά. Με άλλα λόγια, ακόμη και αν κάποιος πληκτρολογήσει έναν αριθμό ως είσοδο, ο Python τον επιστρέφει ως συμβολοσειρά.

όνομα = είσοδος ('Ποιο είναι το όνομά σας:') εκτύπωση (όνομα) εκτύπωση (τύπος (όνομα)) ηλικία = είσοδος ('Ποια είναι η ηλικία σας:') εκτύπωση (ηλικία) εκτύπωση (τύπος (ηλικία))

Παραγωγή:

Ποιο είναι το όνομά σου: Τύρα



Τύρα

Ποια είναι η ηλικία σας: 20

πώς να φτιάξετε μια τάξη

είκοσι

Βλέπετε λοιπόν, ο τύπος ονόματος και ηλικίας που λαμβάνεται ως εισαγωγή είναι 'String'.

Τώρα, ας υποθέσουμε ότι αν θέλουμε να προσθέσουμε 5 στην ηλικία, θα κάνουμε τα εξής:

όνομα = είσοδος («Ποιο είναι το όνομά σας:») εκτύπωση (όνομα) εκτύπωση (τύπος (όνομα)) ηλικία = είσοδος («Ποια είναι η ηλικία σας:») εκτύπωση (ηλικία) εκτύπωση (τύπος (ηλικία)) εκτύπωση (ηλικία + 5)

Παραγωγή:

Ποιο είναι το όνομά σου: Τύρα

Τύρα

Ποια είναι η ηλικία σας: 20

είκοσι

Traceback (τελευταία πρόσφατη κλήση):

Αρχείο 'C: /Users/prac.py', γραμμή 9, σε

εκτύπωση (ηλικία + 5)

TypeError: πρέπει να είναι str, όχι int

Δεν μπορούμε να προσθέσουμε 5 στην ηλικία επειδή η ηλικία είναι τύπου String και δεν μπορούμε να κάνουμε απευθείας μαθηματικά με χορδές. Πρέπει λοιπόν να αλλάξουμε την ηλικία σε ακέραιο, επειδή έχουμε πάρει την ηλικία ως είσοδο και η Python την επιστρέφει ως String.

μαριονέτα εναντίον σεφ εναντίον

Ως εκ τούτου.

όνομα = είσοδος ('Ποιο είναι το όνομά σας:') εκτύπωση (όνομα) εκτύπωση (τύπος (όνομα)) ηλικία = είσοδος ('Ποια είναι η ηλικία σας:') εκτύπωση (ηλικία) εκτύπωση (τύπος (ηλικία)) ηλικία = int ( ηλικία) εκτύπωση (ηλικία + 5)

Παραγωγή:

Ποιο είναι το όνομά σου: Τύρα

Τύρα

Ποια είναι η ηλικία σας: 20

είκοσι

25

Συμβατικός τρόπος

Ας υποθέσουμε ότι δεν θέλουμε να χρησιμοποιήσουμε την ενσωματωμένη συνάρτηση int () για να μετατρέψουμε τη συμβολοσειρά σε ακέραιο.Πρέπει λοιπόν να χρησιμοποιήσουμε το συμβατικός τρόπος μετατρέπω.

Εδώ είναι ένας απλός τρόπος για μετατροπή χωρίς τη χρήση int ().

'' '' 123 '-> 123' -12332 '-> -12332' 'def str_to_int (input_str): output_int = 0 if input_str [0] ==' - ': start_idx = 1 is_negative = True other: start_idx = 0 is_negative = False for i in range (start_idx, len (input_str)): place = 10 ** (len (input_str) - (i + 1)) ψηφίο = ord (input_str [i]) - ord ('0') output_int + = place * digit if is_negative: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' εκτύπωση (str_to_int (s)) s = Εκτύπωση '-123' (str_to_int (s))

Παραγωγή:

123

-123

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

  • Οποιοσδήποτε αριθμός, ας πούμε 123, μπορεί να γραφτεί με τη μορφή -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • Ομοίως, χωρίζουμε κάθε έναν από τον αριθμό εισόδου χρησιμοποιώντας λέξη (επιχείρημα) .

  • Το ord (‘0’) θα επιστρέψει 48, το ord (‘1’) επιστρέφει 49 κ.λπ.

  • Εδώ χρησιμοποιούμε τη λογική ότι ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 κ.λπ. που μας δίνει τον σημαντικό αριθμό που πρέπει να ληφθεί από το δεδομένο αριθμός εισαγωγής.

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

Έτσι, όπως μπορείτε να δείτε, μπορούμε να μετατρέψουμε οποιαδήποτε συμβολοσειρά σε ακέραιο είτε χρησιμοποιώντας τη συνάρτηση int () είτε με τον συμβατικό τρόπο.

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

τι είναι ο συγγραφέας στην Ιάβα

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του String to Integer Tutorial και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.

Για να μάθετε σε βάθος την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε να εγγραφείτε ζωντανά με υποστήριξη 24/7 και πρόσβαση σε όλη τη διάρκεια ζωής.