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

Ποιοι τύποι συμβολοσειρών Python μπορούν να μετατραπούν σε αριθμούς κινητής υποδιαστολής;

Αν θέλετε να μετατρέψετε μια συμβολοσειρά Python σε float, η συμβολοσειρά πρέπει να έχει μια έγκυρη αριθμητική αναπαράσταση ως τιμή κινητής υποδιαστολής. Αυτό σημαίνει ότι μπορεί να περιέχει αριθμούς σε δεκαδική μορφή, που περιλαμβάνει δεκαδικά σημεία και επιστημονική σημειογραφία (όπως "3.14" ή "2.7e-3"). Ωστόσο, δεν μπορεί να περιέχει επιπλέον χαρακτήρες, κενά ή χαρακτήρες που δεν αντιπροσωπεύουν αριθμητικές τιμές. Αν περιέχει, η μετατροπή δεν θα λειτουργήσει.

Η μετατροπή String–float είναι μια βασική λειτουργία και περιλαμβάνεται σε κάθε έκδοση της Python. Ωστόσο, ενδέχεται να υπάρχουν μικρές διαφορές στον τρόπο λειτουργίας ορισμένων μεθόδων και λειτουργιών σε διαφορετικές εκδόσεις. Φροντίστε να προσέχετε τα σφάλματα που μπορεί να προκύψουν κατά τη διάρκεια των μετατροπών. Για παράδειγμα, η εισαγωγή μιας συμβολοσειράς που δεν αντιπροσωπεύει έναν έγκυρο αριθμό θα προκαλέσει σφάλμα. Και ειδικές τιμές όπως NaN (Not a Number) και Infinity δεν μπορούν να μετατραπούν σε float. Αυτό σημαίνει ότι οι προγραμματιστές που εργάζονται με μετατροπές πρέπει να είναι σε θέση να χειρίζονται τα σφάλματα κατάλληλα. Η χρήση των μπλοκ try/except για την ανίχνευση και την αντιμετώπιση σφαλμάτων είναι ένας τρόπος για να το επιτύχετε αυτό.

Πώς να μετατρέψετε συμβολοσειρές Python με τη συνάρτηση float()

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

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

str1 = "3.1416"
float_value = float(str1)
print(float_value) # Output: 3.1416
python

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

Τα μπλοκ try/except μπορούν να χρησιμοποιηθούν για να εντοπίσουν μη έγκυρες εισόδους χρήστη κατά τη μετατροπή συμβολοσειρών σε αριθμούς κινητής υποδιαστολής:

while True:
    user_input = input("Enter a number: ")
    try:
        float_value = float(user_input)
        print("Entered number as float:", float_value)
        break # Exit the loop if the conversion was successful
    except ValueError:
        print("Invalid input! Please enter a numeric value.")
        # The loop continues to prompt for valid input
python

Ο παραπάνω κώδικας είναι ένας βρόχος που ζητά από τους χρήστες να εισαγάγουν έναν αριθμό. Στη συνέχεια, προσπαθεί να μετατρέψει αυτήν την τιμή σε αριθμό κινητής υποδιαστολής. Στο μπλοκ try, float(user_input) έχει ως στόχο να μετατρέψει τη συμβολοσειρά που εισήγαγε ο χρήστης σε αριθμό κινητής υποδιαστολής. Εάν η μετατροπή ήταν επιτυχής, ο αριθμός αποθηκεύεται στο float_value και επιστρέφεται. Στη συνέχεια, η δήλωση break τερματίζει τον βρόχο και συνεχίζει με το πρόγραμμα.

Εάν προκύψει σφάλμα ValueError κατά τη μετατροπή της συμβολοσειράς σε float, εκτελείται ο κώδικας στο μπλοκ except. Αυτό μπορεί να συμβεί εάν ο χρήστης εισαγάγει μια τιμή που δεν μπορεί να μετατραπεί σε float, όπως ένα γράμμα. Σε αυτή την περίπτωση, εμφανίζεται ένα μήνυμα που αναφέρει ότι η εισαγωγή δεν είναι έγκυρη και ο βρόχος ζητά ξανά έγκυρη εισαγωγή.

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

Αν θέλετε να μετατρέψετε μια συμβολοσειρά Python σε float με το NumPy, μπορείτε να χρησιμοποιήσετε τη συνάρτηση numpy.float64(). Θα σας δώσει έναν αριθμό κινητής υποδιαστολής 64 bit.

import numpy as np
string_value = "3.1416"
float_value = np.float64(string_value)
print(float_value) # Output: 3.1416
python

Πρώτα θα πρέπει να εισαγάγετε το NumPy στο σενάριό σας, αν δεν είναι ήδη εγκατεστημένο. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το NumPy για να εφαρμόσετε τη συνάρτηση numpy.float64() στη συμβολοσειρά string_value και να τη μετατρέψετε σε αριθμό κινητής υποδιαστολής 64 bit.

Πώς να χρησιμοποιήσετε τη συνάρτηση str()

Αν, από την άλλη πλευρά, θέλετε να μετατρέψετε ένα float σε string, μπορείτε να χρησιμοποιήσετε τη συνάρτηση str(). Αυτή η συνάρτηση μετατρέπει άλλες τιμές σε strings.

float_number = 3.1416
string_number = str(float_number)
print(string_number) # Output: "3.1416"
python

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

str() είναι επίσης χρήσιμο για τη συνένωση πολλών τιμών float με f-strings (μια μορφή συμβολοσειράς Python).

float_value1 = 3.1416
float_value2 = 2.7182
float_value3 = 1.6180
string_concatenation = f"Concatenation of: {str(float_value1)}, {str(float_value2)}, and {str(float_value3)}"
print(string_concatenation) # Concatenation of: 3.1416, 2.7182, and 1.6180
python

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

Tip

Διαβάστε για άλλους τύπους μετατροπών στον Ψηφιακό Οδηγό μας. Εξηγούμε πώς να μετατρέψετε συμβολοσειρές Python σε λίστες και συμβολοσειρές Python σε αντικείμενα datetime.

Go to Main Menu