Η Γλώσσα Προγραμματισμού Python – Εισαγωγή
Τι Είναι η Python
Η Python είναι μια διερμηνευόμενη (interpreted), αλληλεπιδραστική (interactive) και προσανατολισμένη σε αντικείμενα (object-oriented) γλώσσα προγραμματισμού, που αναπτύχθηκε από τονGuido van Rossum. Το όνομά της προέρχεται από ένα από τα αγαπημένα τηλεοπτικά θεάματα του van Rossum, το ιπτάμενο τσίρκο των Monty Python’s. Η Python είναι μια γλώσσα που συνδυάζει σημαντική ισχύ με πολύ σαφή σύνταξη. Χρησιμοποιεί ενότητες (modules), τάξεις (classes), εξαιρέσεις (exceptions) καθώς και πολύ υψηλού επιπέδου δυναμικούς τύπους δεδομένων.
Οι διερμηνευτές (interpreters) της Python είναι διαθέσιμοι για τα περισσότερα λειτουργικά συστήματα και ο πηγαίος κώδικας (source code) της Python διατίθεται δωρεάν. Η επίσημη ιστοσελίδα της γλώσσας είναι η http://www.python.org. Η ανάπτυξη της Python ξεκίνησε το 1990 στο CWI του Άμστερνταμ και συνεχίζεται στο CNRI του Reston. Η γλώσσα διαθέτει μια κομψή αν και όχι πολύ απλοποιημένη σύνταξη και έναν μικρό αριθμό από ισχυρούς και υψηλού επιπέδου τύπους δεδομένων.
Η Python μπορεί να επεκταθεί προσθέτοντάς της καινούργια modules που να είναι γραμμένα σε μια γλώσσα που μεταγλωττίζεται, όπως είναι η C ή η C++. Αυτά τα modules επέκτασης μπορούν να ορίσουν νέες συναρτήσεις (functions) και μεταβλητές (variables) καθώς επίσης και καινούργιους τύπους δεδομένων (object types). Η Python συγκρίνεται συχνά μ’ άλλες διερμηνευόμενες γλώσσες προγραμματισμού, όπως είναι οι Java, JavaScript, Perl, Tcl και η Smalltalk, αλλά συγκρίσεις μπορούν να γίνουν και με τις C++, Common Lisp και Scheme.
Ο Διερμηνευτής (Interpreter) της Python
Ο διερμηνευτής της Python είναι συνήθως εγκατεστημένος στον κατάλογο /usr/local/bin/, οπότε γράφοντας python από τη γραμμή εντολών, μπορούμε να την εκκινήσουμε. Ένας άλλος πιθανός κατάλογος είναι ο /usr/local/. Για να βγούμε από τον interpreter, μπορούμε να δώσουμε τον χαρακτήρα τέλους αρχείου (end-of-file character), που είναι ο Control-D στο Unix και ο Control-Zστο DOS και στα Windows. Αν αυτό δεν δουλέψει, μπορούμε να γράψουμε τις εξής εντολές :
"import sys; sys.exit()"
Ο πιο εύκολος τρόπος για να διαπιστώσουμε αν υποστηρίζεται η επεξεργασία εντολών ανά γραμμή (command line editing) είναι να πατήσουμε τα πλήκτρα Control-P μόλις εμφανισθεί η προτροπή (prompt) της Python. Αν ακουστεί ένας ήχος (beep), αυτό σημαίνει ότι είναι διαθέσιμο το command line editing, ενώ αν δεν συμβεί κάτι ή εμφανισθεί ο χαρακτήρας P, αυτό σημαίνει ότι δεν είναι διαθέσιμο το command line editing.
Ο interpreter μπορεί να διαβάζει και να εκτελεί εντολές αλληλεπιδραστικά (interactively), ενώ όταν καλείται με όρισμα ένα όνομα αρχείου, όπως για παράδειγμα C:PythonPython p01, τότε διαβάζει και εκτελεί τις εντολές (script) που περιέχονται στο αρχείο. Ένας τρίτος τρόπος για να ξεκινήσουμε τον interpreter είναι ο εξής : “python -c command [arg] …”, όπου εκτελούνται οι εντολές που περιέχονται στο command.
Η Μεταβίβαση Ορισμάτων (Argument Passing)
Όταν είναι γνωστά στον interpreter, το όνομα του script και τα ορίσματα (arguments) μεταβιβάζονται στο script μέσω της μεταβλητής sys.argv, η οποία είναι μια λίστα από strings. Το μήκος της είναι τουλάχιστον ίσο με 1, στην περίπτωση που δεν υπάρχει κάποιο script και κάποια ορίσματα, οπότε το sys.argv[0] είναι ένα άδειο string.
Το Interactive Mode
Όταν οι εντολές δίνονται από το πληκτρολόγιο μία-μία, λέμε ότι ο interpreter βρίσκεται σε interactive mode και στην περίπτωση αυτή περιμένει την επόμενη εντολή με την προτροπή (prompt) >>>. Αν έχουμε ξεκινήσει μια εντολή και δεν την έχουμε τελειώσει, εμφανίζεται η προτροπή … (τρεις τελείες). Ο interpreter εκτυπώνει ένα μήνυμα καλωσορίσματος που εμφανίζει τον αριθμό της έκδοσης της Python και κάποιες άλλες πληροφορίες πριν εμφανίσει το πρώτο prompt :
C:Python24>python Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on Win32
Οι Τάξεις (Classes) και τα Αντικείμενα (Objects)
Είμαστε τώρα έτοιμοι να δημιουργήσουμε έναν σύνθετο τύπο δεδομένων, όπως είναι το Point. Στα μαθηματικά, ένα σημείο (point) αντιστοιχεί σε δύο αριθμούς, που είναι οι συντεταγμένες του (coordinates), και οι οποίες αντιμετωπίζονται μαζί ως ένα αντικείμενο (object). Στον μαθηματικό συμβολισμό, τα σημεία (points) γράφονται συχνά με παρενθέσεις και μ’ ένα κόμμα να ξεχωρίζει τις συντεταγμένες. Για παράδειγμα, το (0, 0) αντιστοιχεί στην αρχή των αξόνων (origin) και το (3, -5) αντιστοιχεί στο σημείο που βρίσκεται 3 μονάδες στα δεξιά του άξονα x και 5 μονάδες κάτω από τον άξονα y. Για να παραστήσουμε τώρα ένα σημείο στην Python, θα χρησιμοποιήσουμε δύο αριθμητικές τιμές.
Το θέμα είναι βέβαια το πώς θα ομαδοποιήσουμε αυτές τις δύο τιμές σ’ ένα σύνθετο αντικείμενο (compound object) και μια απλή λύση είναι να χρησιμοποιήσουμε μια λίστα (list) ή ένα tuple.Μια άλλη λύση είναι να δημιουργήσουμε έναν νέο σύνθετο τύπο δεδομένων ορισμένο από τον χρήστη (user-defined compound type), που είναι γνωστός με τον όρο τάξη (class).
Ένας ορισμός μιας τάξης γίνεται ως εξής :
class Point : pass
Ο ορισμός μιας τάξης μπορεί να γίνει οπουδήποτε σ’ ένα πρόγραμμα, αλλά συνήθως γίνεται στην αρχή του προγράμματος και μετά από τις εντολές import. Ο παραπάνω ορισμός δημιουργεί μια καινούργια τάξη με όνομα Point, όπου η εντολή pass δεν κάνει τίποτα και απλά υπάρχει γιατί μια σύνθετη εντολή πρέπει να περιέχει κάτι στο κυρίως σώμα της (body).
Δημιουργώντας την τάξη Point, έχουμε δημιουργήσει έναν καινούργιο τύπο δεδομένων που επίσης αποκαλείται Point. Τα μέλη αυτού του τύπου δεδομένων αποκαλούνται στιγμιότυπα (instances) του τύπου δεδομένων ή και αντικείμενα (objects). Η δημιουργία ενός καινούργιου στιγμιότυπου (instance) αποκαλείται instantiation. Για να δημιουργήσουμε ένα καινούργιο στιγμιότυπο του αντικειμένου Point, καλούμε μια συνάρτηση με όνομα Point.
Οι Ιδιότητες (Attributes)
Μπορούμε να προσθέσουμε νέα δεδομένα σ’ ένα στιγμιότυπο (instance), χρησιμοποιώντας τον συμβολισμό με την τελεία (dot notation), ως εξής :
simeio = Point() simeio.x = 3.0 simeio.y = 4.0
Εδώ επιλέγουμε ένα στοιχείο δεδομένων (data item) από ένα στιγμιότυπο και αυτά τα δεδομένα αποκαλούνται ιδιότητες (attributes). Η μεταβλητή simeio αναφέρεται σ’ ένα αντικείμενο του τύπου Point, το οποίο περιέχει δύο ιδιότητες (attributes), όπου η κάθε ιδιότητα αντιστοιχεί σε μια αριθμητική τιμή. Μπορούμε να εμφανίσουμε την τιμή μιας ιδιότητας με την εντολή print είτε απευθείας ή αφού την έχουμε καταχωρήσει πριν σε μια άλλη μεταβλητή, ως εξής :
print simeio.y
3.0
x = simeio.x print x
5.0
Η έκφραση simeio.x σημαίνει «πήγαινε στο αντικείμενο simeio και πάρε την τιμή του x». Εδώ, εκχωρούμε την τιμή αυτή σε μια μεταβλητή με όνομα x. Δεν γίνεται καμία σύγχυση ανάμεσα στη μεταβλητή x και την ιδιότητα x του αντικειμένου simeio.
Μπορούμε να χρησιμοποιήσουμε τον συμβολισμό με την τελεία και ως μέρος μιας έκφρασης, ως εξής :
print '(' + str(simeio.x) + ', ' + str(simeio.y) + ')' distance = simeio.x * simeio.x + simeio.y * simeio.y
Η πρώτη εντολή από τις παραπάνω θα εμφανίσει το κείμενο (3.0, 5.0) και η δεύτερη θα καταχωρήσει την τιμή 34.0, δηλ. το άθροισμα 32+52, στη μεταβλητή distance.
Τα Στιγμιότυπα ως Παράμετροι
Μπορούμε να μεταβιβάσουμε ένα στιγμιότυπο (instance) ως παράμετρο :
def printPoint(p) : print '(' + str(p.x) + ', ' + str(p.y) + ')'
Η συνάρτηση printPoint() λαμβάνει ένα σημείο (point) ως όρισμα (argument) και εμφανίζει τις τιμές των ιδιοτήτων του. Για παράδειγμα, αν δώσουμε την εντολή printPoint(simeio), το αποτέλεσμα θα είναι (3.0, 5.0).
Η Ισότητα των Αντικειμένων
Όταν μιλάμε για αντικείμενα (objects), υπάρχει μια παρόμοια ασάφεια. Για παράδειγμα, αν δύο σημεία (αντικείμενα Points) είναι τα ίδια, τότε αυτό σημαίνει ότι περιέχουν τα ίδια δεδομένα (συντεταγμένες) ή ότι πρόκειται στην ουσία για το ίδιο αντικείμενο; Για να μπορέσουμε να μάθουμε αν δύο αναφορές απευθύνονται στο ίδιο αντικείμενο, χρησιμοποιούμε τον τελεστή ==.
Για παράδειγμα :
p1 = Point() p1.x = 3 p1.y = 4 p2 = Point() p2.x = 3 p2.y = 4 p1 == p2
0
Αν και τα p1 και p2 περιέχουν τις ίδιες τιμές (συντεταγμένες), πρόκειται για δύο διαφορετικά αντικείμενα. Αν τώρα εκχωρήσουμε το p1 στο p2, τότε οι δύο αυτές μεταβλητές θα αποτελούν ψευδώνυμα (aliases) του ίδιου αντικειμένου :
p2 = p1 p1 == p2
1
Το παραπάνω είδος σύγκρισης είναι γνωστό ως shallow equality (ρηχή ισότητα) επειδή συγκρίνει μόνο τις αναφορές και όχι τα περιεχόμενα των αντικειμένων. Για να μπορέσουμε να συγκρίνουμε τα περιεχόμενα (deep equality, βαθιά ισότητα), μπορούμε να δημιουργήσουμε μια συνάρτηση (function) με όνομα samePoint :
def samePoint(p1, p2) : return (p1.x == p2.x) and (p1.y == p2.y)
Αν τώρα δημιουργήσουμε δύο διαφορετικά αντικείμενα που να περιέχουν τα ίδια δεδομένα, θα μπορούμε να χρησιμοποιήσουμε τη συνάρτηση samePoint για να βρούμε αν περιέχουν τις ίδιες τιμές.
p1 = Point() p1.x = 3 p1.y = 4 p2 = Point() p2.x = 3 p2.y = 4 samePoint(p1, p2)
Παράδειγμα με την Τάξη Rectangle
Ας υποθέσουμε ότι θέλουμε μια τάξη (class) να παριστάνει ένα ορθογώνιο (rectangle). Το ερώτημα είναι ποια στοιχεία θα πρέπει να δώσουμε ώστε να προσδιορισθεί ένα ορθογώνιο και υποθέτουμε βέβαια ότι το ορθογώνιο είναι προσανατολισμένο είτε κατακόρυφα είτε οριζόντια και όχι υπό γωνία.
Μια περίπτωση είναι να καθορίσουμε το κέντρο του ορθογωνίου (δύο συντεταγμένες) και το μέγεθός του (πλάτος και ύψος) ή θα μπορούσαμε να καθορίσουμε μια από τις γωνίες του και το μέγεθός του ή δύο απέναντι γωνίες. Μια τυπική λύση είναι να καθορίσουμε τις συντεταγμένες της πάνω αριστερής γωνίας και το μέγεθος του ορθογωνίου. Ορίζουμε ξανά μια καινούργια τάξη :
class Rectangle: pass Και δημιουργούμε ένα στιγμιότυπο : box = Rectangle() box.width = 100.0 box.height = 200.0
Ο παραπάνω κώδικας δημιουργεί ένα καινούργιο αντικείμενο Rectangle με δύο ιδιότητες (attributes) που έχουν πραγματικές αριθμητικές τιμές. Για να καθορίσουμε την πάνω αριστερή γωνία, μπορούμε να ενσωματώσουμε ένα αντικείμενο μέσα σ’ ένα άλλο αντικείμενο :
box.corner = Point() box.corner.x = 0.0; box.corner.y = 0.0;
Η έκφραση box.corner.x σημαίνει «πήγαινε στο αντικείμενο που αναφέρεται το box, επέλεξε την ιδιότητα corner, μετά πήγαινε σ’ αυτό το αντικείμενο και επέλεξε την ιδιότητα x». Στην ουσία μια ιδιότητα του αντικειμένου Rectangle, η corner, αποτελεί η ίδια ένα αντικείμενο Point.
Τα Στιγμιότυπα ως Επιστρεφόμενες Τιμές
Οι συναρτήσεις μπορούν να επιστρέψουν στιγμιότυπα (instances). Για παράδειγμα, η συνάρτηση findCenter λαμβάνει ένα αντικείμενο Rectangle ως όρισμα και επιστρέφει ένα αντικείμενο Pointπου περιέχει τις συντεταγμένες του κέντρου του αντικειμένου Rectangle :
def findCenter(box): p = Point() p.x = box.corner.x + box.width/2.0 p.y = box.corner.y + box.height/2.0 return p
Για να καλέσουμε αυτή τη συνάρτηση, μεταβιβάζουμε το box ως όρισμα και εκχωρούμε το αποτέλεσμα σε μια μεταβλητή :
center = findCenter(box) printPoint(center) (50.0, 100.0)
Πράξεις με Αντικείμενα
Μπορούμε να αλλάξουμε την κατάσταση ενός αντικειμένου δίνοντας τιμές σε μια από τις ιδιότητές του. Για παράδειγμα, για να αλλάξουμε το μέγεθος ενός ορθογωνίου χωρίς να αλλάξουμε τη θέση του, μπορούμε να αλλάξουμε τις τιμές των ιδιοτήτων width και height, ως εξής :
box.width = box.width + 50 box.height = box.height + 100
Μπορούμε να τοποθετήσουμε τον παραπάνω κώδικα σε μια μέθοδο ώστε να αυξάνουμε το μέγεθος ενός ορθογωνίου με όποια τιμή θέλουμε :
def growRect(box, dwidth, dheight) : box.width = box.width + dwidth box.height = box.height + dheight
Για παράδειγμα, μπορούμε να δημιουργήσουμε ένα καινούργιο αντικείμενο Rectangle με όνομα bob και να το μεταβιβάσουμε στη συνάρτηση growRect, ως εξής :
bob = Rectangle() bob.width = 100.0 bob.height = 200.0 bob.corner = Point() bob.corner.x = 0.0; bob.corner.y = 0.0; growRect(bob, 50, 100)
Οι Συναρτήσεις (Functions)
Έχουμε ήδη δει παραδείγματα κλήσεων συνάρτησης :
type("32") type 'string'
Το όνομα της συνάρτηση είναι type και εμφανίζει το είδος μιας τιμής ή μιας μεταβλητής. Η τιμή ή η μεταβλητή, που είναι γνωστή ως όρισμα (argument) της συνάρτησης, θα πρέπει να βρίσκεται μέσα σε παρενθέσεις. Μια συνάρτηση δέχεται ένα όρισμα (argument) και επιστρέφει ένα αποτέλεσμα, το οποίο είναι γνωστό ως η τιμή επιστροφής (return value).
Αντί να εκτυπώσουμε την τιμή επιστροφής, μπορούμε να την εκχωρήσουμε σε μια μεταβλητή :
betty = type("32") print betty
Οι Συμβολοσειρές (Strings)
Σε μια συμβολοσειρά (string) μπορούμε να χρησιμοποιήσουμε τον τελεστή [ ] για να επιλέξουμε (απομονώσουμε) έναν μόνο χαρακτήρα του string.
fruit = "banana" letter = fruit[1] print letter
Η έκφραση fruit[1] επιλέγει από το string fruit τον χαρακτήρα που βρίσκεται στη θέση 1 και τον καταχωρεί στη μεταβλητή letter. Όταν εκτυπώνουμε την τιμή της letter, μας περιμένει μια έκπληξη :
a
Στους υπολογιστές το μέτρημα αρχίζει από τη θέση 0 και έτσι το γράμμα στη θέση 0 της λέξης “banana” είναι το b, το γράμμα στη θέση 1 είναι το a, το γράμμα στη θέση 2 είναι το n κοκ. Έτσι, για να πάρουμε τον χαρακτήρα που βρίσκεται στην πρώτη θέση ενός string, γράφουμε το 0 ανάμεσα στις αγκύλες :
letter = fruit[0] print letter
b
Η Συνάρτηση Len()
Η συνάρτηση len() επιστρέφει τον αριθμό των χαρακτήρων που περιέχει ένα string :
fruit = "banana" len(fruit)
6
Για να πάρουμε τον τελευταίο χαρακτήρα ενός string, ίσως θελήσουμε να δοκιμάσουμε κάτι σαν το εξής :
length = len(fruit) last = fruit[length] # Λάθος
Το παραπάνω δεν θα δουλέψει καθώς δεν υπάρχει χαρακτήρας στη θέση 6 της λέξης “banana”. Εφόσον η αρίθμηση ξεκίνησε από το 0, τα έξι γράμματα της λέξης είναι αριθμημένα από 0 έως και 5. Έτσι, για να πάρουμε τον τελευταίο χαρακτήρα, θα πρέπει να αφαιρέσουμε το 1 από το length :
length = len(fruit) last = fruit[length-1]
Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε αρνητικές τιμές, όπου η μέτρηση γίνεται από το τέλος του string, όπως η έκφραση fruit[-1] που επιστρέφει τον τελευταίο χαρακτήρα του string, η έκφραση fruit[-2] που επιστρέφει τον δεύτερο χαρακτήρα από το τέλος κοκ.
Ο Βρόχος While
Για να διασχίσουμε όλους τους χαρακτήρες ενός string, μπορούμε να χρησιμοποιήσουμε τον βρόχο while, ως εξής :
index = 0 while index < len(fruit): letter = fruit[index] print letter index = index + 1
Ο βρόχος αυτός διασχίζει το string και εμφανίζει τον κάθε χαρακτήρα σε μια ξεχωριστή γραμμή. Η συνθήκη εισόδου στον βρόχο είναι η index < len(fruit), έτσι όταν το index γίνει ίσο με το μήκος του string, η συνθήκη γίνεται ψευδής (false) και δεν εκτελείται το σώμα του βρόχου.
Ο Βρόχος For
Μπορούμε να χρησιμοποιήσουμε τον βρόχο for όταν είναι συγκεκριμένος ο αριθμός των επαναλήψεων. Ο βρόχος for μπορεί να χρησιμοποιηθεί και ως εξής :
for char in fruit: print char
Κάθε φορά που εκτελείται ο βρόχος, εκχωρείται στη μεταβλητή char ο επόμενος χαρακτήρας που περιέχεται στο string. Ο βρόχος συνεχίζει να εκτελείται μέχρις ότου εξαντληθούν όλοι οι χαρακτήρες.
Ακολουθεί ένα ακόμα παράδειγμα.
prefixes = "JKLMNOPQ" suffix = "ack" for letter in prefixes: print letter + suffix
Η έξοδος του προγράμματος είναι η εξής :
Jack
Kack
Lack
Mack
Nack
Oack
Pack
Qack
Οι Τελεστές Πηλίκου και Υπολοίπου
Ο τελεστής υπολοίπου (modulus operator) εργάζεται με ακεραίους αριθμούς και επιστρέφει το υπόλοιπο (remainder) της ακέραιης διαίρεσης του πρώτου τελεστέου με τον δεύτερο. Στην Python, ο τελεστής υπολοίπου είναι το σύμβολο % και η σύνταξη είναι ως εξής :
quotient = 7 / 3
print quotient
2
remainder = 7 % 3
print remainder
1
Μια χρήση του τελεστή υπολοίπου είναι για να δούμε αν ένας αριθμός διαιρείται από κάποιον άλλον, όπου αν το αποτέλεσμα x % y είναι ίσο με 0, τότε το x διαιρείται από το y. Επίσης, μπορούμε να εξάγουμε (απομονώσουμε) τα τελευταία δεξιά ψηφία ενός αριθμού. Για παράδειγμα, η έκφραση x % 10 επιστρέφει το τελευταίο δεξιά ψηφίο του αριθμού x και η έκφραση x % 100 επιστρέφει τα δύο τελευταία δεξιά ψηφία του αριθμού x.
Οι Λογικές Εκφράσεις και οι Τελεστές Σύγκρισης
Μια λογική έκφραση (boolean expression) είναι μια έκφραση που είναι είτε αληθής (true) είτε ψευδής (false). Στην Python, μια έκφραση που είναι αληθής (true) έχει την τιμή 1 και μια έκφραση που είναι ψευδής (false) έχει την τιμή 0. Ο τελεστής == συγκρίνει δύο τιμές και παράγει μια λογική έκφραση, όπως :
>>> 5 == 5
1
>>> 5 == 6
0
Στην πρώτη εντολή από τις παραπάνω, οι δύο τελεστέοι είναι ίσοι, έτσι η έκφραση έχει λογική τιμή 1 (true), ενώ στην δεύτερη εντολή, το 5 δεν είναι ίσο με το 6, έτσι έχουμε λογική τιμή 0 (false).
Ο τελεστής == είναι ένας από τους τελεστές σύγκρισης (comparison operators), όπου οι υπόλοιποι είναι οι εξής :
x != y # το x δεν είναι ίσο με το y
x > y # το x είναι μεγαλύτερο από το y
x < y # το x είναι μικρότερο από το y
x >= y # το x είναι μεγαλύτερο από ή ίσο με το y
x <= y # το x είναι μικρότερο από ή ίσο με το y
Δεν πρέπει να ξεχνάμε ότι το = είναι ένας τελεστής εκχώρησης (assignment operator) και το == είναι ένας τελεστής σύγκρισης (comparison operator).
Οι Λογικοί Τελεστές
Υπάρχουν τρεις λογικοί τελεστές (logical operators) : and, or και not. Για παράδειγμα, η έκφραση x > 0 and x < 10 είναι αληθής (true) μόνο αν το x είναι μεγαλύτερο από το 0 και (and) μικρότερο από το 10. Η έκφραση n%2 == 0 or n%3 == 0 είναι αληθής (true) αν μία τουλάχιστον από τις συνθήκες είναι αληθής (true), δηλ. αν ο αριθμός διαιρείται είτε με το 2 είτε με το 3.
Τέλος, ο τελεστής not αντιστρέφει μια λογική έκφραση, έτσι η έκφραση not(x > y) είναι αληθής (true) αν η έκφραση (x > y) είναι ψευδής (false), δηλ. αν το x είναι μικρότερο από ή ίσο με το y. ΗPython δεν είναι πολύ αυστηρή με τους λογικούς τύπους δεδομένων και έτσι ένας μη μηδενικός αριθμός θεωρείται ως τιμή true.
>>> x = 5
>>> x and 1
1
>>> y = 0
>>> y and 1
0
Για να ελέγξουμε αν η τιμή μιας μεταβλητής περιέχεται σε μια περιοχή τιμών, μπορούμε να δώσουμε και τις εξής εντολές :
>>> x=5
>>> 1<x<6
1
>>> 1<x<4
0
Πηγή:
Αν βρήκατε το άρθρο μας χρήσιμο, θέλετε να μείνετε ενημερωμένοι για όλα τα νέα στο τομέα της τεχνολογίας καθώς και σε χρηστικά άρθρα, βοηθήστε μας κάνοντας like στην σελίδα μας στο Facebook πατώντας εδώ