Ενότητα 1 - Τμήμα 1 - Είσοδος και δομή ακολουθίας

Ιστότοπος: ΕΛ/ΛΑΚ Moodle
Μάθημα: Εργαστήριο Python
Βιβλίο: Ενότητα 1 - Τμήμα 1 - Είσοδος και δομή ακολουθίας
Εκτυπώθηκε από: Guest user
Ημερομηνία: Τετάρτη, 8 Μαΐου 2024, 3:20 AM

Περιγραφή

Μετά την ολοκλήρωση της ενότητας οι φοιτητές θα μπορούν να:

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


1.2.1 Δέσμες Ενεργειών (scripts)

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

Ο κώδικας της Python μπορεί να εισαχθεί χρησιμοποιώντας μια δέσμη ενεργειών. Μιά δέσμη ενεργειών  είναι μια σειρά γραμμών κώδικα Python που θα εκτελεστούν διαδοχικά.

Στο Thonny μπορείτε να γράψετε μια σειρά εντολών στο παράθυρο του προγράμματος επεξεργασίας και να τα αποθηκεύσετε ως αρχείο κώδικα.

scripts


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

name = input("What is your name? ") age = input("What is your age? ") print (name," is ", age, " years old.")

Πατήστε το κουμπί αναπαραγωγής για να δείτε τα αποτελέσματα.

1.2.2 - Μετατροπή τύπου δεδομένων

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

Στην περίπτωση της εισόδου της ηλικίας τι μας εμποδίζει από το γράψιμο της ηλικίας με γράμματα;

Δοκιμάστε αυτό στο CLI

>>> a = input("Enter a number : ")

>>>

Sixteen

>>> 

print (a)

Πώς μπορούμε να βρούμε τι τύπου είναι μια μεταβλητή; Μπορούμε να χρησιμοποιήσουμε την εντολή type. Δοκιμάστε τον ακόλουθο κώδικα στη γραμμή εντολών εισάγοντας έναν αριθμό κινητής υποδιαστολής (π.χ. 34.5).

>>> a = input("Enter a number : ")

>>> type (a)

Όπως μπορείτε να δείτε η μεταβλητή a είναι μια συμβολοσειρά . Πρέπει να θυμάστε ότι οτιδήποτε διαβάζεται από την είσοδο, χωρίς μετατροπή, αντιμετωπίζεται ως συμβολοσειρά. Για να μετατρέψουμε μια συμβολοσειρά σε έναν ακέραιο ή σε έναν αριθμό κινητής υποδιαστολής μπορούμε να χρησιμοποιήσουμε τις εντολές μετατροπής δεδομένων int() ή float().

Τώρα δοκιμάστε τις ακόλουθες εντολές διαδοχικά:

>>> a = input("Enter a number : ")

>>> 17

>>> print (a)

>>> print(a+2)

Η προηγούμενη εντολή δημιουργεί ένα σφάλμα. Γιατί; Μάθετε χρησιμοποιώντας τις ακόλουθες εντολές.

>>> type(a)

>>> a = int(a)

>>> type(a)

>>> print(a)

>>> print(a+2)

>>> a = float(a)

>>> type(a)

>>> print(a+5)

1.2.3 - Χιλιόμετρα ανά λίτρο

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

Ένα απλό πρόγραμμα θα ήταν:

k = 253 # we have traveled 253km g = 15.2 # we have used 15.2 liters of gasoline kpg = k / g print ("Kilometers per liter: ", kpg)

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

# This code almost works kilometers_driven = input("Enter kilometers driven: ") liters_used = input("Enter liters used: ") kpl = kilometers_driven / liters_used print("Kilometers per liter: ", kpl)

Γιατί αυτός ο κώδικας παράγει ένα σφάλμα; Αυτό οφείλεται στο γεγονός ότι το πρόγραμμα δεν γνωρίζει ότι ο χρήστηςεισάγει αριθμούς. Ο χρήστης μπορεί να εισάγει "Bob" και "Mary".

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

# Calculate kilometers Per Liter print("This program calculates kpl.") # Get kilometers driven from the user kilometers_driven = input("Enter kilometers driven: ") # Convert text entered to a floating point number kilometers_driven = float(kilometers_driven) # Get liters used from the user liters_used = input("Enter liters used: ") # Convert text entered to a floating point number liters_used = float(liters_used) # Calculate and print the answer kpl = kilometers_driven / liters_used print("Kilometers per liter: ", kpl)