PYTHON ΜΑΘΗΜΑ 6 – Reading Input and Data Type Conversion

 

Δωρεάν μαθήματα Python

ΕΙΣΑΓΩΓΗ

Τώρα που έχουμε μάθει πως ορίζουμε μεταβλητές και πως αναθέτουμε τιμές σε αυτές, μπορούμε επίσημα να μάθουμε πως διαβάζουμε τιμές από το keyboard για να τις εισάγουμε στο πρόγραμμα μας, και πως μετατρέπουμε μια variable από ένα data type σε ένα άλλο.

DATA TYPES

Η Python έχει χωρίσει τους αριθμούς σε δύο μεγάλες κατηγορίες – Integer (ακέραιους) και Float (δεκαδικούς). Άλλες γλώσσες προγραμματισμού περιέχουν περισσότερα data types για τους αριθμούς όπως Long, Double κτλ. Στην Python τα data types είναι λιγότερα και για αυτό και σαν γλώσσα είναι πιο απλή και εύκολη στην εκμάθησή της.

Πριν όμως προχωρήσουμε στο πρώτος μας παράδειγμα, σίγουρα θα έχετε αναρωτηθεί το εξής: αν το data type της variable ορίζεται από την τιμή που θα αναθέσουμε στο variable, πως γνωρίζουμε μέσα σε ένα μεγάλο πρόγραμμα ποιο data type έχει η μεταβλητή? Γιατί ανά πάσα στιγμή μπορεί να αναθέσουμε μια ακέραια τιμή και μετά να αναθέσουμε ένα string. Φυσικά αυτό δεν είναι και πολύ λογικό να γίνει αλλά απλά σαν παράδειγμα θα καταλάβετε τι ακριβώς ζητάμε να μάθουμε.

Για αυτόν ακριβώς το σκοπό η Python μας προσφέρει μια function που ονομάζεται type( ). Γράφοντας μέσα στην παρένθεση το όνομα της μεταβλητής θα λάβουμε σαν απάντηση το data type της μεταβλητής, με άλλα λόγια το είδος της τιμής που έχει εκείνη την συγκεκριμένη χρονική στιγμή η μεταβλητή.

Ας δούμε λοιπόν ένα παράδειγμα που χρησιμοποιεί integer και float τιμές. Επίσης με την χρήση του type( ) θα βεβαιώσουμε το είδος της τιμής που έχει κάθε μεταβλητή.

app.py

number = 10
average = 1.4
print('The type of number is', type(number))
print('The type of average is', type(average))
print("In the soccer team, I have the number", number)
print("and I usually score an average of", average, "goals per game")
number = 33
average = 2.3
print("In the soccer team, I have the number", number)
print("and I usually score an average of", average, "goals per game")

Output

Αποτέλεσμα εκτέλεσης κώδικα Python

Εκτός από τους αριθμούς έχουμε και ένα άλλο data type το οποίο ονομάζεται Boolean. Μια μεταβλητή που είναι Boolean δέχεται αποκλειστικά δύο τιμές – True ή False. Μεταβλητές που είναι είδος Boolean είναι πολύ χρήσιμες όταν το πρόγραμμα μας πρέπει να αποφασίσει για το ποιο κομμάτι κώδικα πρέπει να εκτελέσει. Θα το δούμε όμως αυτό σε μελλοντικές ενότητες όταν μιλήσουμε για decision structures.

app.py

can_not_fly = True
print(type(can_not_fly))
print('I believe you can not fly ->', can_not_fly)

Output

Αποτέλεσμα εκτέλεσης κώδικα Python


Τέλος, έχουμε και το String data type

app.py

first_name = 'Michail'
last_name = 'Kassapoglou'
print('The data type for first_name is', type(first_name))
print('The data type for last_name is', type(last_name))

Output


Αποτέλεσμα εκτέλεσης κώδικα Python



HOW TO READ INPUT FROM THE KEYBOARD

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

Η Python έχει απλοποιήσει πάρα πολύ τον τρόπο να διαβάζουμε δεδομένα από το keyboard προσφέροντας μας την function input( ). Μέσα στην παρένθεση γράφουμε το μήνυμα που θα πληροφορήσει τον χρήστη τι είδους πληροφορία χρειάζεται να γράψει.

Το input( ) αφού διαβάσει την τιμή που θα εισάγουμε, θα πρέπει να την αναθέσει σε μια μεταβλητή, έτσι ώστε το πρόγραμμα μας να μπορεί να την χρησιμοποιήσει.

app.py

first_name = input('Please enter your first name: ')
last_name = input('Please enter your last name: ')
print('Your full name is', first_name, last_name)

Output

Αποτέλεσμα εκτέλεσης κώδικα Python

Το παραπάνω πρόγραμμα δείχνει ότι η όλη διαδικασία για να διαβάζουμε τιμές από τον χρήστη είναι πολύ εύκολη. Όμως υπάρχει ένα μικρό πρόβλημα – οι τιμές που περάσαμε στο πρόγραμμα είναι όλες string το οποίο είναι το default data type όταν η Python διαβάζει τιμές από το keyboard. Οπότε αν αντί για το όνομα Michail περνούσαμε το πρόγραμμα τον αριθμό 9, για την Python δεν θα ήταν ο αριθμός 9 αλλά ο String χαρακτήρας 9 με τον οποίο φυσικά δεν μπορούμε να κάνουμε αριθμητικές πράξεις. Το παρακάτω πρόγραμμα επιβεβαιώνει την παραπάνω θεωρία.

app.py

first_number = input('Please enter an integer number: ')
print('The data type of first_number is', type(first_number))

Output


Αποτέλεσμα εκτέλεσης κώδικα Python

Για να διορθώσουμε λοιπόν αυτό το πρόβλημα πρέπει να μιλήσουμε για Data Type Conversion.

DATA TYPE CONVERSION

Η Python μας προσφέρει έναν εύκολο τρόπο να μετατρέψουμε ένα data type σε ένα άλλο data χρησιμοποιώντας functions όπως int( ) για να μετατρέψουμε το περιεχόμενο της παρένθεσης σε integer, float( ) για να μετατρέψουμε την τιμή σε float, και str( ) για να μετατρέψουμε την τιμή σε string αν αυτό επιθυμούμε.

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

app.py

first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
hours = int(input("How many hours did you work today? "))
average = float(input("Average working hours per day? "))
print("-------------------------------------------------")
print("Welcome", first_name, last_name)
print("You worked", hours, "today")
print("You work an average of", average, "hours per day")

Output


Αποτέλεσμα εκτέλεσης κώδικα Python


Αν και διορθώσαμε αυτό το λάθος το πρόγραμμα μας δεν είναι τέλειο ακόμα. Για παράδειγμα τι θα γίνει αν αντί για τον αριθμό 10 εισάγουμε την λέξη "δέκα"? Το πρόγραμμα δεν μπορεί να μετατρέψει λέξεις σε αριθμούς, μόνο κανονικούς αριθμούς γραμμένους σαν string. Οπότε σε αυτή την περίπτωση το πρόγραμμα μας δεν θα τρέξει και θα παρουσιάσει περιγραφή του λάθους στο terminal. Κανονικά όμως δεν θα έπρεπε το πρόγραμμα να σταματήσει να εκτελείτε, αλλά να παρουσιάσει ένα μήνυμα στον χρήστη ότι δεν έγραψε την τιμή με το σωστό format. Αργότερα θα μάθουμε πως να προστατεύουμε τον κώδικα μας με την χρήση των Exceptions. Για τώρα ας μείνουμε στα βασικά της Python πριν προχωρήσουμε σε πιο προχωρημένες τακτικές κώδικα.

Μην ξεχάσετε να κάνετε ένα μικρό donation έτσι ώστε αυτό το site να μεγαλώσει ακόμα πιο πολύ και να αποκτήσει περισσότερες δυνατότητες online παράδοσης δωρεάν μαθημάτων.

full-width

Post a Comment

0 Comments