Scripts

Είπαμε ότι η python εκτελεί προγράμματα μέσω του διερμηνευτή της. Ένα πρόγραμμα είναι απλά εντολές που γράφονται η μία μετά την άλλη σε ένα αρχείο, και μετά εκτελούνται με τον διερμηνευτή.

Άσκηση 2: γράψτε ένα απλό πρόγραμμα python

Δημιουργήστε ένα αρχείο με τον editor της επιλογής σας.

Γράψτε τα παρακάτω και σώστε το αρχείο με το όνομα ex2.py

print "Hello world!" 
print "I am the first program of an incubating python programmer"

Ένα τέτοιο αρχείο λέγεται script.

Αποθηκεύστε το script σας σε κάποιο φάκελο, και στη συνέχεια πηγαίνετε σε εκείνο το φάκελο στην κονσόλα και γράψτε:

$ python ex2.py

Εάν όλα πήγαν καλά, θα πρέπει να δείτε:

$ python ex2.py
Hello world!
I am the first program of an incubating python programmer

Εάν το αποτέλεσμα ήταν:

$ python ex2.py
python: can't open file 'ex2.py': [Errno 2] No such file or directory

Τότε μάλλον είστε σε λάθος φάκελο. Ζητήστε από έναν βοηθό να σας βοηθήσει.

Είσοδος

Όταν εκτελείτε ένα script, είναι πολύ χρήσιμο να μπορείτε να του δώσετε κάποιες τιμές να χρησιμοποιήσει. Για παράδειγμα, έστω το παρακάτω script:

import sys

name = sys.argv[1]

print "Hello "+name+"! How do you do today?"

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

Για να δώσετε μια τιμή εισόδου σε αυτό το script, θα πρέπει να το εκτελέσετε ως εξής:

$ python hello.py Agamemnon
Hello Agamemnon! How do you do today?
$ python hello.py Erszebet
Hello Erszebet! How do you do today?

Μπορείτε να δώσετε όσες τιμές εισόδου θέλετε, τη μία μετά την άλλη. Για να διαβάσει το πρόγραμμά σας μια τιμή εισόδου, θα χρησιμοποιήσει την έκφραση sys.argv[x] όπου x η θέση της τιμής (1 για την πρώτη, 2 για τη δεύτερη, κ.ο.κ.).

Το παραπάνω πρόγραμμα δε φαίνεται πολύ χρήσιμο. Ας δούμε ένα πιο χρήσιμο:

import sys

first_number = sys.argv[1]
second_number = sys.argv[2]

print first_number + second_number

Αυτό το script διαβάζει δύο αριθμούς από την είσοδο και τυπώνει το άθροισμά τους:

$ python add.py 1 2
12

Μπορείτε να βρείτε το λάθος στην παραπάνω εικόνα;

Μια λεπτομέρεια που δεν αναφέραμε είναι πως οι τιμές εισόδου διαβάζονται πάντα σαν αλφαριθμητικά, οπότε όταν τις προσθέσουμε με τον τελεστή +, δε θα γίνει αριθμητική πρόσθεση, αλλά απλή ένωση των δύο αλφαριθμητικών. Για να μετατρέψετε ένα αλφαριθμητικό a σε ακέραιο αριθμό πρέπει να χρησιμοποιήσετε την έκφραση int(a). Άρα, το διορθωμένο script θα είναι το εξής:

import sys

first_number = int(sys.argv[1])
second_number = int(sys.argv[2])

print first_number + second_number

Το διορθωμένο script έχει σωστό αποτέλεσμα:

$ python add.py 1 2
3

Κι άλλη είσοδος

Εκτός από το να δίνετε σε ένα πρόγραμμα τιμές εισόδου στην εκτέλεσή του, μπορείτε να βάλετε το πρόγραμμα να ζητήσει από το χρήστη μια τιμή. Αυτό γίνεται με την εντολή raw_input(prompt). Η λέξη μέσα στην παρένθεση είναι μια παράμετρος της εντολής, την οποία θα καταλάβετε ευκολότερα στην πράξη. Εκτελέστε το script raw_input.py, και στη συνέχεια εξετάστε τον κώδικά του:

a = raw_input("Type something and press Enter: ")

print "You typed '"+a+"'"

b = raw_input("Please type your name: ")

print "Is your name really "+b+"? Wow, I had a dog called that!"

Επομένως, μέσα στην παρένθεση, η εντολή raw_input() περιμένει ένα αλφαριθμητικό. Αφού το τυπώσει, ο χρήστης θα πρέπει να γράψει κάτι και να πατήσει Enter. Η raw_input() θα πάρει αυτό που έγραψε ο χρήστης και θα το αναθέσει στη μεταβλητή πριν το ίσον.

Άσκηση 3

Εφαρμόστε όσα μάθατε ως τώρα: γράψτε ένα script που εκτελείται ως εξής:

$ python ex3.py Dionysus 3 5
Welcome back, master Dionysus. 3 times 5 equals 15. Hooray!