Μετατροπή τύπου Python και Casting τύπου (με παραδείγματα)

Σε αυτό το άρθρο, θα μάθετε για τη μετατροπή τύπου και τις χρήσεις μετατροπής τύπου.

Πριν μάθετε τη μετατροπή τύπων στο Python, θα πρέπει να έχετε γνώσεις σχετικά με τους τύπους δεδομένων Python.

Τύπος μετατροπής

Η διαδικασία μετατροπής της τιμής ενός τύπου δεδομένων (ακέραιος, συμβολοσειρά, float κ.λπ.) σε έναν άλλο τύπο δεδομένων ονομάζεται μετατροπή τύπου. Η Python έχει δύο τύπους μετατροπής τύπου.

  1. Σιωπηρή μετατροπή τύπου
  2. Μετατροπή ρητού τύπου

Σιωπηρή μετατροπή τύπου

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

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

Παράδειγμα 1: Μετατροπή ακέραιου αριθμού σε float

 num_int = 123 num_flo = 1.23 num_new = num_int + num_flo print("datatype of num_int:",type(num_int)) print("datatype of num_flo:",type(num_flo)) print("Value of num_new:",num_new) print("datatype of num_new:",type(num_new))

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 τύπος δεδομένων num_int: τύπος δεδομένων num_flo: Τιμή num_new: 124.23 τύπος δεδομένων num_new: 

Στο παραπάνω πρόγραμμα,

  • Προσθέτουμε δύο μεταβλητές num_int και num_flo, αποθηκεύοντας την τιμή στο num_new.
  • Θα εξετάσουμε τον τύπο δεδομένων και των τριών αντικειμένων αντίστοιχα.
  • Στην έξοδο, μπορούμε να δούμε τον τύπο δεδομένων του num_int είναι integerενώ ο τύπος δεδομένων του num_flo είναι a float.
  • Επίσης, μπορούμε να δούμε ότι το num_new έχει έναν floatτύπο δεδομένων επειδή η Python μετατρέπει πάντα μικρότερους τύπους δεδομένων σε μεγαλύτερους τύπους δεδομένων για να αποφύγει την απώλεια δεδομένων.

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

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

 num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str:",type(num_str)) print(num_int+num_str)

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Τύπος δεδομένων num_int: Τύπος δεδομένων num_str: Traceback (τελευταία τελευταία κλήση): Αρχείο "python", γραμμή 7, στο TypeError: τύποι (ες) που δεν υποστηρίζονται για +: 'int' και 'str'

Στο παραπάνω πρόγραμμα,

  • Προσθέτουμε δύο μεταβλητές num_int και num_str.
  • Όπως μπορούμε να δούμε από την έξοδο, έχουμε TypeError. Η Python δεν μπορεί να χρησιμοποιήσει έμμεση μετατροπή σε τέτοιες συνθήκες.
  • Ωστόσο, η Python έχει μια λύση για αυτούς τους τύπους καταστάσεων που είναι γνωστές ως ρητή μετατροπή.

Μετατροπή ρητού τύπου

Στο Explicit Type Conversion, οι χρήστες μετατρέπουν τον τύπο δεδομένων ενός αντικειμένου σε απαιτούμενο τύπο δεδομένων. Χρησιμοποιούμε τις προκαθορισμένες λειτουργίες, όπως int(), float(), str(), κλπ για την εκτέλεση ρητή μετατροπή τύπου.

Αυτός ο τύπος μετατροπής ονομάζεται επίσης πληκτρολόγηση επειδή ο χρήστης μεταδίδει (αλλάζει) τον τύπο δεδομένων των αντικειμένων.

Σύνταξη:

 (έκφραση)

Η πληκτρολόγηση μπορεί να γίνει αναθέτοντας την απαιτούμενη συνάρτηση τύπου δεδομένων στην έκφραση.

Παράδειγμα 3: Προσθήκη συμβολοσειράς και ακέραιου αριθμού χρησιμοποιώντας ρητή μετατροπή

 num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str before Type Casting:",type(num_str)) num_str = int(num_str) print("Data type of num_str after Type Casting:",type(num_str)) num_sum = num_int + num_str print("Sum of num_int and num_str:",num_sum) print("Data type of the sum:",type(num_sum))

Όταν εκτελούμε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Τύπος δεδομένων num_int: Τύπος δεδομένων num_str πριν από τον τύπο μετάδοσης: Τύπος δεδομένων του num_str μετά τον τύπο μετάδοσης: άθροισμα του αριθμού_int και num_str: 579 Τύπος δεδομένων του αθροίσματος: 

Στο παραπάνω πρόγραμμα,

  • Προσθέτουμε num_str και num_int μεταβλητή.
  • Μετατρέψαμε το num_str από συμβολοσειρά (υψηλότερο) σε ακέραιο (χαμηλότερο) τύπο χρησιμοποιώντας τη int()συνάρτηση για την εκτέλεση της προσθήκης.
  • Μετά τη μετατροπή του num_str σε ακέραια τιμή, η Python μπορεί να προσθέσει αυτές τις δύο μεταβλητές.
  • Έχουμε την τιμή num_sum και τον τύπο δεδομένων ως ακέραιο.

Βασικά σημεία που πρέπει να θυμάστε

  1. Τύπος μετατροπής είναι η μετατροπή αντικειμένου από έναν τύπο δεδομένων σε έναν άλλο τύπο δεδομένων.
  2. Η έμμεση μετατροπή τύπου πραγματοποιείται αυτόματα από τον διερμηνέα Python.
  3. Η Python αποφεύγει την απώλεια δεδομένων στο Implicit Type Conversion.
  4. Το Explicit Type Conversion ονομάζεται επίσης Type Casting, οι τύποι δεδομένων των αντικειμένων μετατρέπονται χρησιμοποιώντας προκαθορισμένες συναρτήσεις από τον χρήστη.
  5. Στο Type Casting, ενδέχεται να προκληθεί απώλεια δεδομένων καθώς εφαρμόζουμε το αντικείμενο σε έναν συγκεκριμένο τύπο δεδομένων.

ενδιαφέροντα άρθρα...