Όπως πάντα θα ξεκινήσουμε το κεφάλαιο με μια άσκηση πληκτρολόγησης για προθέρμανση. Το παρακάτω προγραμματάκι θα μας βοηθήσει να υπολογίσουμε την απόλυτη τιμή ενός αριθμού:
n = input("Number? ") if n < 0: print "The absolute value of",n,"is",-n else: print "The absolute value of",n,"is",n
Και το αποτέλεσμα των δυο φορών που έτρεξα το πρόγραμμα:
Number? -34 The absolute value of -34 is 34 Number? 1 The absolute value of 1 is 1
Τι κάνει λοιπόν ο υπολογιστής όταν βλέπει αυτές τις γραμμές κώδικα; Πρώτα ζητάει από τον χρήστη έναν αριθμό με την εντολή n = input("Number? "). Μετά διαβάζει την εντολή if n < 0: Αν το n είναι μικρότερο του μηδενός η Python τρέχει την γραμμή print "The absolute value of",n,"is",-n. Διαφορετικά θα τρέξει την γραμμή print "The absolute value of",n,"is",n.
Αν το εξετάσουμε πιο τεχνικά η Python κοιτάζει αν η έκφραση (expression) n < 0 είναι αληθής ή ψευδής. Η δήλωση if ακολουθείται από ένα μπλοκ (block) δηλώσεων / εντολών που τρέχουν όταν και αν ή έκφραση είναι αληθής. Ακολούθως μετά την δήλωση if υπάρχει η δήλωση else . Αυτή θα τρέξει αν η έκφραση είναι ψευδής.
Υπάρχουν διάφορα κριτήρια αληθείας για μια έκφραση. Παρακάτω είναι ένας πίνακας με τα κριτήρια αυτά:
σύμβολο | λειτουργία |
< |
Μικρότερο από |
<= |
Μικρότερο από ή ίσο με |
> |
Μεγαλύτερο από |
>= |
Μεγαλύτερο από ή ίσο με |
== |
ίσο |
!= |
άνισο |
<> |
ένας άλλος συμβολισμός για το άνισο |
Άλλο ένα σημείο την δήλωσης if είναι η δήλωση elif. Προέρχεται από τις λέξεις else if και σημαίνει ``αν η δήλωση if είναι ψευδής και η δήλωση elif είναι αληθής τότε τρέξε εκείνο το μέρος. Να ένα παράδειγμα:
a = 0 while a < 10: a = a + 1 if a > 5: print a," > ",5 elif a <= 7: print a," <= ",7 else: print "Neither test was true"
και το αποτέλεσμα:
1 <= 7 2 <= 7 3 <= 7 4 <= 7 5 <= 7 6 > 5 7 > 5 8 > 5 9 > 5 10 > 5
Προσέξετε ότι η εντολή elif a <= 7 ελέγχεται όταν η δήλωση if παύει να είναι αληθής. Η elif επιτρέπει πολλαπλούς ελέγχους σε μια απλή δήλωση if.
High_low.py
#Plays the guessing game higher or lower # (originally written by Josh Cogliati, improved by Quique) #This should actually be something that is semi random like the # last digits of the time or something else, but that will have to # wait till a later chapter. (Extra Credit, modify it to be random # after the Modules chapter) number = 78 guess = 0 while guess != number : guess = input ("Guess a number: ") if guess > number : print "Too high" elif guess < number : print "Too low" print "Just right"
Δοκιμή:
Guess a number:100 Too high Guess a number:50 Too low Guess a number:75 Too low Guess a number:87 Too high Guess a number:81 Too high Guess a number:78 Just right
even.py
#Asks for a number. #Prints if it is even or odd number = input("Tell me a number: ") if number % 2 == 0: print number,"is even." elif number % 2 == 1: print number,"is odd." else: print number,"is very strange."
Δοκιμές:
Tell me a number: 3 3 is odd. Tell me a number: 2 2 is even. Tell me a number: 3.14159 3.14159 is very strange.
Αλλάξτε το πρόγραμμα μαντέματος password έτσι ώστε να καταγράφει πόσες φορές ο χρήστης έχει εισάγει λάθος password. Αν είναι παραπάνω από 3, να εμφανίζει ``That must have been complicated.''
Γράψτε ένα πρόγραμμα που να ζητάει δύο αριθμούς. Αν το άθροισμα των αριθμών είναι μεγαλύτερο από 100 να εμφανίζει ``That is big number''.
Γράψτε ένα πρόγραμμα που να ρωτάει το όνομα του χρήστη. Αν εισάγει το όνομά σας να εμφανίζεται "That is a nice name", αν εισάγει "John Cleese" ή "Michael Palin", να εμφανίζει την γνώμη σας για αυτούς :-) διαφορετικά να εμφανίζει "You have a nice name".