Δημοσιεύτηκε: 08 Ιουν 2009, 13:44
από Μάριος Ζηντίλης
Με την εντολή:

Κώδικας: Επιλογή όλων
>>> name = 'Marios' 


φτιάχνω μια μεταβλητή με το όνομα name και της εκχωρώ την τιμή 'Marios'. Η τιμή αυτή είναι από προεπιλογή σε utf-8 κωδικοποιημένη. Με την εντολή:

Κώδικας: Επιλογή όλων
>>> name_ascii = name.encode("ascii") 


φτιάχνω μια καινούρια μεταβλητή με το όνομα name_ascii και της εκχωρώ την τιμή της name κωδικοποιημένη κατά Ascii. Έτσι έχω:

Κώδικας: Επιλογή όλων
>>>name
'Marios'
>>>name_ascii
b
'Marios' 


Αυτό το b μπροστά από το όνομα δείχνει ότι η συμβολοσειρά είναι κωδικοποιημένη κατά ASCII. Ας δούμε και ένα ακόμα παράδειγμα:

Κώδικας: Επιλογή όλων
>>> name = 'Μάριος'
>>> name
'Μάριος'
>>> name_ascii = name.encode("ascii")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)


Εδώ η Python διαμαρτύρεται ότι δε μπορεί μετατρέψει τη συμβολοσειρά 'Μάριος' σε ASCII γιατί οι χαρακτήρες που χρησιμοποιούνται δεν ανήκουν στο σύνολο ASCII.

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