Python String σε Int: Πώς να μετατρέψετε μια συμβολοσειρά σε ακέραιο στο Python

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

Ευτυχώς, η Python έχει μια εύχρηστη ενσωματωμένη λειτουργία str()που θα μετατρέψει το όρισμα που μεταβιβάστηκε σε μορφή συμβολοσειράς.

Ο λανθασμένος τρόπος για να μετατρέψεις μια συμβολοσειρά σε έναν ακέραιο στο Python

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

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

Μπορείτε να εκτελέσετε αυτόν τον κωδικό στο repl.it.

Το σφάλμα που εμφανίζεται είναι:

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

Εδώ, TypeError: must be str, not intυποδηλώνει ότι ο ακέραιος αριθμός πρέπει πρώτα να μετατραπεί σε συμβολοσειρά πριν μπορεί να συνενωθεί.

Ο σωστός τρόπος για να μετατρέψεις μια συμβολοσειρά σε έναν ακέραιο στο Python

Ακολουθεί ένα απλό παράδειγμα συνένωσης:

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

Μπορείτε να εκτελέσετε αυτόν τον κωδικό στο repl.it.

Δείτε πώς μπορείτε να εκτυπώσετε 1 2 3 4 5 6 7 8 9 10χρησιμοποιώντας μία συμβολοσειρά:

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

Μπορείτε να εκτελέσετε τον κωδικό στο repl.it.

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

  1. Πρώτα απ 'όλα μια μεταβλητή «αποτέλεσμα» αντιστοιχεί σε μια κενή συμβολοσειρά.
  2. Το for loop χρησιμοποιείται για την επανάληψη μιας λίστας αριθμών.
  3. Αυτή η λίστα αριθμών δημιουργείται χρησιμοποιώντας τη λειτουργία εύρους.
  4. έτσι το εύρος (1,11) πρόκειται να δημιουργήσει μια λίστα αριθμών από 1 έως 10.
  5. Σε κάθε επανάληψη βρόχου, αυτή η μεταβλητή «i» θα καταλάβει τιμές από 1 έως 10.
  6. Στην πρώτη επανάληψη όταν η μεταβλητή i = 1, τότε η μεταβλητή [αποτέλεσμα = αποτέλεσμα + str (i) + "(χαρακτήρας διαστήματος)"], το str (i) μετατρέπει το 'i' που είναι ακέραια τιμή σε τιμή συμβολοσειράς.
  7. Δεδομένου ότι i = 1, στην πρώτη επανάληψη τελικά το αποτέλεσμα = 1.
  8. Και η ίδια διαδικασία συνεχίζεται μέχρι το i = 10 και τελικά μετά το τελευταίο αποτέλεσμα επανάληψης = 1 2 3 4 5 6 7 8 9 10.
  9. Επομένως, όταν τελικά εκτυπώσουμε το αποτέλεσμα μετά το βρόχο for, η έξοδος στην κονσόλα είναι «1 2 3 4 5 6 7 8 9 10».

Ελπίζω να το βρείτε αυτό χρήσιμο. Καλή κωδικοποίηση.