Σημειώσεις

Προηγούμενο

Επόμενο

Προγραμματισμός

Γλώσσα προγραμματισμού python

Η 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

Έχουμε επιλέξει την python για να μάθουμε προγραμματισμό διότι είναι:

Why We’re Learning Python (codeAcademy)

[Αυτή η εξήγηση εμφανίστηκε σε αυτό το άρθρο (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

Τύποι μεταβλητών

Μπορούμε να αποθηκεύσουμε στην μνήμη του υπολογιστή αριθμούς και αντικείμενα διαφόρων ειδών. Ορισμένα από αυτά είναι τα παρακάτω.

  1. int (ακέραιος)
  2. float (κινητής υποδιαστολής)
  3. bool (λογική μεταβλητή: παίρνει τις τιμές True ή False)
  4. 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'>

Άσκηση.

Έχουμε 800 εγγεγραμμένους φοιτητές στο μάθημα του προγραμματισμού και έρχονται στις εξετάσεις 300 από αυτούς. Αν οι βαθμολογίες καταχωρηθούν με την βοήθεια της python, τι τύπων μεταβλητές χρειαζόμαστε για να καλύψουμε την βαθμολογία και των 800 φοιτητών;

Άσκηση.

Αναφέρετε περιπτώσεις όπου οι τύποι 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

Μη αποδεκτά ονόματα μεταβλητών:

Τύπος (μεταβλητής) χαρακτήρων.

Θα δούμε και άλλους τύπους μεταβλητών. Έξαιρετικά χρήσιμες μεταβλητές είναι αυτές που έχουν χαρακτήρες (είναι τύπου string).


>>> greeting = 'hallo there!'

Τελεστές.

Κάνουμε πράξεις με μεταβλητές και παίρνουμε το αποτέλεσμα σε νέα μεταβλητή.


>>> 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!

Παρατήρηση.

Δείτε στα παραπάνω παραδείγματα ότι το 3.14 άλλοτε θεωρείται αριθμός float και άλλοτε μία σειρά ψηφίων (string).

'Αλλα παραδείγματα:


>>> print(a,b,greeting)
3 3.14 hallo there!

Άσκηση.

Γράψτε εντολές με τις οποίες θα δίνονται τιμές σε δύο μεταβλητές (π.χ. 3 και 3.14 αντίστοιχα) και μετά θα τυπώνεται το εξής
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). Δηλαδή, η εντολή δίνει μεν ένα αποτέλεσμα, αλλά δεν είναι αυτό που θέλαμε.

Μελέτη

Βιβλιογραφία

  1. An Informal Introduction to Python: variables, strings
  2. Δ. Καρολίδης, Μαθαίνετε εύκολα python.
  3. Κ. Μαγκούτης, Χ. Νικολάου, Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, (Αποθετήριο "Κάλλιπος", 2016) - Δείτε τα κεφάλαια 1. Εισαγωγή στην Python, 2. Τιμές, τύποι, μεταβλητές, λέξεις κλειδιά, εντολές, 3. Εκφράσεις, τελεστές, σχόλια.
  4. Ιστοσελίδα μαθήματος "Γλώσσα Προγραμματισμού Ι", 2016 (Μιχ. Πλεξουσάκης)
Eγκαταστήστε την python στον Η/Υ σας

Εργαλεία