Πρώτα βήματα
Δεδομένα
Αποφάσεις
Επανάληψη
Συναρτήσεις και σφάλματα
Πράξεις και συγκρίσεις
Τέσσερις φίλοι σε μια ταβέρνα, λογαριασμός 87 ευρώ. Κάποιος βγάζει το κινητό, διαιρεί με το 4 και λέει «21,75 ο καθένας». Ένα πρόγραμμα κάνει την ίδια πράξη με μία γραμμή, αρκεί να ξέρεις πώς γράφονται οι πράξεις και με ποια σειρά τις εκτελεί.
Πρόβλεψεprint(10 + 20 / 2)Τι τυπώνει;
Διάλεξε μία
Οι τέσσερις πράξεις
Πρόσθεση
+, αφαίρεση -, πολλαπλασιασμός *, διαίρεση /. Ο πολλαπλασιασμός γράφεται με αστερίσκο, γιατί το x είναι γράμμα και θα μπορούσε να είναι όνομα μεταβλητής. Τα σύμβολα αυτά λέγονται αριθμητικοί τελεστές και είναι ίδια σχεδόν σε κάθε γλώσσα προγραμματισμού.Το
/ δίνει πάντα float. Το 10 / 2 είναι 5.0, όχι 5. Σε άλλες γλώσσες η διαίρεση δύο ακεραίων δίνει ακέραιο. Στην Python όχι. Με το +, το - και το * ανάμεσα σε δύο int, το αποτέλεσμα μένει int.Δες τον λογαριασμό της ταβέρνας. Τρέξε τον και μετά πρόσθεσε στο σύνολο 10 ευρώ φιλοδώρημα πριν από τη διαίρεση, στην ίδια γραμμή με το
print.python
Αν έγραψες
total + 10 / people, πήρες 89.5: η Python διαίρεσε μόνο το 10 με το 4 και πρόσθεσε το 2.5 στο 87. Η σωστή γραμμή έχει παρενθέσεις, (total + 10) / people, που δίνει 24.25. Οι παρενθέσεις κάνουν αυτό που έκαναν και στο σχολείο: ό,τι βρίσκεται στις παρενθέσεις υπολογίζεται πρώτο.Πηλίκο και υπόλοιπο
Δύο ακόμα τελεστές δεν τους έχεις στο κομπιουτεράκι. Το
// δίνει το ακέραιο πηλίκο μιας διαίρεσης και το % το υπόλοιπο. Το 7 χωράει στο 2 τρεις φορές και περισσεύει 1, οπότε 7 // 2 δίνει 3 και 7 % 2 δίνει 1. Σε άλλες γλώσσες το πηλίκο γράφεται αλλιώς, αλλά το % για το υπόλοιπο είναι σχεδόν παντού ίδιο.Μια ταινία διαρκεί 135 λεπτά και θέλεις να το γράψεις σε ώρες και λεπτά. Προχώρα βήμα βήμα:
Βήμα προς βήμαΒήμα 1 από 4minutes = 135hours = minutes // 60rest = minutes % 60print(hours, "ώρες και", rest, "λεπτά")Μεταβλητέςminutes = 135
Τα λεπτά της ταινίας.
Το
% απαντάει και σε ερωτήσεις που δε μοιάζουν με διαίρεση. Ένας αριθμός είναι ζυγός όταν το υπόλοιπο της διαίρεσής του με το 2 είναι 0: το 18 % 2 δίνει 0, το 17 % 2 δίνει 1.Οι κυριότεροι τελεστές μαζί, με τους ίδιους δύο αριθμούς:
Συγκρίσεις
Οι τρεις τελευταίες γραμμές του πίνακα δε δίνουν αριθμό. Δίνουν
True ή False, δηλαδή ένα bool. Μια σύγκριση είναι μια ερώτηση με απάντηση ναι ή όχι και οι τελεστές της λέγονται συγκριτικοί τελεστές:| Τελεστής | Ερώτηση |
|---|---|
== | Είναι ίσα; |
!= | Είναι διαφορετικά; |
< | Είναι το αριστερό μικρότερο; |
> | Είναι το αριστερό μεγαλύτερο; |
<= | Μικρότερο ή ίσο; |
>= | Μεγαλύτερο ή ίσο; |
Η ισότητα γράφεται με δύο ίσον. Το ένα
= είναι ανάθεση: το age = 18 βάζει το 18 στη μεταβλητή. Το age == 18 ρωτάει αν η μεταβλητή έχει ήδη την τιμή 18 και δεν αλλάζει τίποτα. Αν μπερδέψεις τα δύο, θα αλλάξεις μια τιμή ενώ ήθελες να την ελέγξεις. Τρέξε το παρακάτω, και μετά άλλαξε την πρώτη γραμμή σε age = 21 και ξανατρέξε.python
Ένας συνδυασμός από τιμές και τελεστές, όπως το
2 + 3 * 4 > 10, λέγεται έκφραση. Η Python υπολογίζει κάθε έκφραση βήμα βήμα, μέχρι να μείνει μία τιμή. Όταν μια έκφραση έχει και πράξεις και σύγκριση, η Python υπολογίζει πρώτα τους αριθμούς και στο τέλος τους συγκρίνει:Ένα κατάστημα δίνει δωρεάν μεταφορικά για παραγγελίες από 40 ευρώ και πάνω. Τρέξε τον έλεγχο με διάφορα ποσά και πρόσθεσε μια γραμμή που ελέγχει αν το ποσό είναι ακριβώς 40.
python
Το ίδιο σε ψευδοκώδικα
Η ταινία των 135 λεπτών σε ψευδοκώδικα:
ΓΛΩΣΣΑΠΡΟΓΡΑΜΜΑ ΤΑΙΝΙΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: ΛΕΠΤΑ, ΩΡΕΣ, ΥΠΟΛΟΙΠΟ ΑΡΧΗ ΛΕΠΤΑ ← 135 ΩΡΕΣ ← ΛΕΠΤΑ DIV 60 ΥΠΟΛΟΙΠΟ ← ΛΕΠΤΑ MOD 60 ΓΡΑΨΕ ΩΡΕΣ, 'ώρες και', ΥΠΟΛΟΙΠΟ, 'λεπτά' ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Για το ακέραιο πηλίκο γράφεις
DIV αντί για // και για το υπόλοιπο MOD αντί για %. Το DIV και το MOD δουλεύουν μόνο με ακέραιους, ενώ το // και το % της Python δέχονται και δεκαδικούς: το 7.5 // 2 δίνει 3.0. Στις συγκρίσεις η διαφορά είναι μεγαλύτερη. Η ΓΛΩΣΣΑ κάνει την εκχώρηση με ←, οπότε το απλό = σημαίνει «είναι ίσα;», εκεί που η Python γράφει ==. Για το «είναι διαφορετικά;» γράφεις <> αντί για !=.Γιατί το 0.1 + 0.2 δεν κάνει 0.3
Τρέξε αυτές τις δύο γραμμές πριν διαβάσεις παρακάτω.
python
Η πρώτη τυπώνει
0.30000000000000004 και η δεύτερη False.Δεν είναι λάθος της Python. Ο υπολογιστής κρατάει τους δεκαδικούς στο δυαδικό σύστημα. Εκεί το 0.1 δεν μπορεί να γραφτεί ακριβώς, όπως το 1/3 στο δεκαδικό γράφεται 0.333... και τα τριάρια δεν τελειώνουν ποτέ. Ο υπολογιστής κρατάει μια πολύ κοντινή τιμή. Στην πρόσθεση οι μικρές αποκλίσεις φαίνονται. Το ίδιο αποτέλεσμα θα πάρεις σε σχεδόν κάθε γλώσσα.
Για τα περισσότερα προγράμματα η απόκλιση δεν έχει σημασία. Στα χρήματα έχει. Γι' αυτό πολλά συστήματα πληρωμών μετράνε σε ακέραια λεπτά: 10 λεπτά και 20 λεπτά είναι int. Το
10 + 20 == 30 δίνει True χωρίς εκπλήξεις. Για τον ίδιο λόγο, μη συγκρίνεις δύο float με == περιμένοντας ακρίβεια μέχρι το τελευταίο ψηφίο.Σύνοψη
- Οι τελεστές
+,-,*,/κάνουν τις τέσσερις πράξεις. Το/δίνει πάντα float, ακόμα και στο10 / 2. - Πολλαπλασιασμός και διαίρεση γίνονται πριν από πρόσθεση και αφαίρεση. Με παρενθέσεις ορίζεις εσύ τη σειρά.
- Το
//δίνει το ακέραιο πηλίκο και το%το υπόλοιπο. Με αυτά μετατρέπεις λεπτά σε ώρες ή ελέγχεις αν ένας αριθμός είναι ζυγός. - Οι συγκρίσεις
==,!=,<,>,<=,>=δίνουν bool. Σε μια έκφραση με πράξεις, η σύγκριση γίνεται τελευταία. - Το
=βάζει τιμή σε μεταβλητή, το==ρωτάει αν δύο τιμές είναι ίσες. - Στον ψευδοκώδικα γράφεις το πηλίκο με
DIV, το υπόλοιπο μεMOD, την ισότητα με=και το «διαφορετικά» με<>. - Οι δεκαδικοί είναι κατά προσέγγιση σε κάθε γλώσσα:
0.1 + 0.2δίνει0.30000000000000004. Τα χρήματα μετριούνται συχνά σε ακέραια λεπτά.
Θες να συνεχίσεις;
Το course είναι δωρεάν. Κάνε σύνδεση για να κρατάς την πρόοδο και τις σημειώσεις σου.