Η Python είναι μια γλώσσα προγραμματισμού με απλό συντακτικό, εξαιρετική αναγνωσιμότητα, φορητότητα (portability) και μοντέρνα χαρακτηριστικά που την κάνουν κατάλληλη ως πρώτη γλώσσα προγραμματισμού.
Η python είναι μία γλώσσα <<υψηλού επιπέδου>> (άλλα παραδείγματα τέτοιων γλωσσών είναι η FORTRAN, C, Java κλπ). Ο κώδικας μία τέτοιας γλώσσας πρέπει να μετατραπεί σε <<γλώσσα μηχανής>> ώστε να εκτελεστεί από τον Η/Υ. Η επεξεργασία αυτή γίνεται από διερμηνευτές (interpreters) και μεταγλωττιστές (compilers). Στην περίπτωση της python η επεξεργασία γίνεται από διερνηνευτή.
Η γλώσσα αυτή γράφτηκε από τον Ολλανδό προγραμματιστή Guido van Rossum στα τέλη της δεκαετίας 1980-90. Η έκδοση 2.0 δημοσιεύτηκε στις 16 Οκτωβρίου 2000 και η έκδοση 3.0, η οποία δεν είναι, εν γένει, σύμφωνη (compatible) με τις προηγούμενες εκδόσεις, στις 3 Δεκεμβρίου 2008. Στο μάθημά μας θα χρησιμοποιήσουμε την έκδοση 3.5.
Αν ο προσωπικός σας υπολογιστής χρησιμοποιεί το λειτουργικό σύστημα Linux ή το MacOS τότε η Python είναι ήδη εγκατεστημένη (βεβαιωθείτε όμως ότι έχετε τον διερμηνέα για την Python 3 γράφοντας python3 στη γραμμή εντολών). Διαφορετικά, μπορείτε να εγκαταστήσετε το περιβάλλον εργασίας Python με το όνομα Canopy από την ιστοσελίδα της Enthought.
Οι ελεύθερα προσβάσιμοι υπολογιστές του Τμήματος χρησιμοποιούν το λειτουργικό σύστημα Linux και έχουν, φυσικά, εγκατεστημένο το διερμηνέα για την Python 3. Περιέχουν επίσης, το κέλυφος IDLE, και το περιβάλλον Canopy, δηλαδή διαδραστικούς διερμηνείς της Python με ενσωματωμένο κειμενογράφο. Τα εργαστήρια του μαθήματος θα γίνονται σε αυτά τα υπολογιστικά συστήματα, αλλά μπορείτε να χρησιμοποιείτε τον δικό σας φορητό υπολογιστή.
Έχουμε επιλέξει την python για να μάθουμε προγραμματισμό διότι είναι:
[Αυτή η εξήγηση εμφανίστηκε σε αυτό το άρθρο (12/1/2018).]
Python was named the fastest growing programming language of 2017 by Stack Overflow. This was attributed to its ties to machine learning and data science. But we’re not all trying to build HAL 9000. Python’s newest fans also include business majors, analysts, and content marketers. Why?
Θα δώσουμε πολλαπλασιασμό και διαίρεση αριθμών και θα πάρουμε το αποτέλεσμα:
>>> 3*4
12
>>> 3.0*4.0
12.0
>>> 3.0*4
12.0
>>> 1/2
0.5
>>> 4/2
2.0
>>> 2/3
0.6666666666666666
Μπορούμε να αποθηκεύσουμε στην μνήμη του υπολογιστή αριθμούς και αντικείμενα διαφόρων ειδών. Ορισμένα από αυτά είναι τα παρακάτω.
int
(ακέραιος)float
(κινητής υποδιαστολής)bool
(λογική μεταβλητή: παίρνει τις τιμές True
ή False
)NoneType
(παίρνει την τιμή None
, δηλώνει απουσία τιμής)Οι αριθμοί που αποθηκεύουμε εκχωρούνται σε μεταβλητές.
pi, a
.
>>> pi = 3.14
>>> a = 10.0
>>> a = 3
>>> b = 3.14
>>> d = True
>>> n = None
Με την σύνταξη type(όνομα μεταβλητής)
μπορούμε να ελέγξουμε τον τύπο των μεταβλητών οι οποίες ήδη έχουν ορισθεί (έχουν τιμές).
>>> type(a)
<class 'int'>
>>> type(b)
<class 'float'>
>>> type(d)
<class 'bool'>
>>> type(n)
<class 'NoneType'>
int, float, bool, NoneType
θα ήταν χρήσιμοι.
float
είναι πεπερασμένη.
Κάθε αριθμός float
έχει 16 ψηφία.
>>> print(1/49)
0.02040816326530612
>>> print(1/49*49)
0.9999999999999999
>>> print(1/50*50)
1.0
>>> natural_number = 3
>>> to_pi = 3.14
>>> protasi = True
>>> bathmos = None
>>> Bathmos = 10
Μη αποδεκτά ονόματα μεταβλητών:
1number
- αρχίζει με αριθμό.number!
- περιέχει το !class
- είναι λέξη-κλειδί.
>>> greeting = 'hallo there!'
Τελεστές.
10+4
--> 14 (Πρόσθεση)10-4
--> 6 (Αφαίρεση)10*4
--> 40 (Πολλαπλασιασμός)10**4
--> 10000 (Ύψωση σε δύναμη)10/4
--> 2.5 (Διαίρεση)10//4
--> 2 (Ακέραια διαίρεση)10%4
--> 2 (Υπόλοιπο ακέραιας διαίρεσης)Κάνουμε πράξεις με μεταβλητές και παίρνουμε το αποτέλεσμα σε νέα μεταβλητή.
>>> area = pi*a**2
Βρήκαμε την επιφάνεια δίσκου με ακτίνα ίση με 10. Χρειάστηκε να υψώσουμε στο τετράγωνο (a**2
) και να κάνουμε πολλαπλασιασμό (με το σύμβολο *
).
Τελικά εκχωρήσαμε το αποτέλεσμα του π a2 στη νέα μεταβλητή area
.
Είναι δεσμευμένες λέξεις με ειδική σημασία. Μπορούμε να τις δούμε όλες:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Έχουμε ήδη δει μία εντολή της python: type
. Αυτή η εντολή δέχεται μία μεταβλητή και παράγει ένα αποτέλεσμα (δίνει τον τύπο της μεταβλητής).
Επίσης, μπορούμε εύκολα να χρησιμοποιήσουμε και άλλες εντολές, print, int, float, str
.
>>> print(a)
3
>>> print(d)
True
>>> print(a,b)
3 3.14
>>> int(b)
3
>>> float(a)
3.0
>>> str(3.14)
'3.14'
>>> print('Kostas Papadakis')
Kostas Papadakis
>>> print(greeting)
hallo there!
float
και άλλοτε μία σειρά ψηφίων (string
).
'Αλλα παραδείγματα:
>>> print(a,b,greeting)
3 3.14 hallo there!
The value is: 3
The value is: 3.14
Έχουμε δει επίσης την εντολή import
η οποία μας επιτρέπει πρόσβαση σε προκαθορισμένες μεταβλητές, συναρτήσεις κλπ.
Το πακέτο math
περιέχει χρήσιμες μαθηματικές σταθερές και μαθηματικές συναρτήσεις.
>>> import math
>>> print(math.pi)
3.141592653589793
>>> math.sqrt(2.0)
1.4142135623730951
>>> math.sqrt(2)
1.4142135623730951
>>> math.exp(1)
2.718281828459045
>>> import math
>>> angle = math.pi/3
>>> x = math.sin(angle)
>>> y = math.cos(angle)
>>> print(x,y,x**2+y**2)
Συντακτικό σφάλμα. Ας δούμε τα εξής παραδείγματα.
>>> print c
SyntaxError: Missing parentheses in call to 'print'
>>> print(c,Nick)
Traceback (most recent call last):
File "", line 1, in
print(c,Nick)
NameError: name 'Nick' is not defined
H πρώτη εντολή έχει συντακτικό λάθος το οποίο η Python ονομάζει SyntaxError. Η δεύτερη εντολή έχει ένα λάθος το οποίο η Python ονομάζει NameError. Ο διερνηνευτής (interpreter) μας δίνει πληροφορία σχετικά με το κάθε λάθος.
Σφάλμα σημασίας. Ας δούμε το παράδειγμα
>>> print(3,2)
3 2
Τυπώσαμε δύο αριθμούς. Δεν φαίνεται να υπάρχει κανένα λάθος στο παραπάνω.
Εάν όμως ο σκοπός μας ήταν να τυπώσουμε τον αριθμό 3.2 τότε έχουμε κάνει
ένα λάθος σημασίας (semantic error).
Δηλαδή, η εντολή δίνει μεν ένα αποτέλεσμα, αλλά δεν είναι αυτό που θέλαμε.