H γλώσσα Python

69
H γλώσσα Python • H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό. • Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α

description

H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό. Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α. H γλώσσα Python. - PowerPoint PPT Presentation

Transcript of H γλώσσα Python

Page 1: H γλώσσα Python

H γλώσσα Python

• H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό.

• Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α

Page 2: H γλώσσα Python

H γλώσσα Python

• Χρησιμοποιεί ένα πλήρες δυναμικό σύστημα και αυτόματη διαχείριση της μνήμης

• Για αυτό τον λόγο χρησιμοποιείτε συνήθως ως scripting language.

Page 3: H γλώσσα Python

Ο διερμηνέας της Python(1)

O διερμηνέας(interpreter) της Python είναι το βασικό περιβάλλον της γλώσσας γιατί εκεί λαμβάνουν δράση όλες η διαδικασίες που αφορούν την γλώσσα.

Είναι υπεύθυνος για την εκτέλεση των προγραμμάτων και προσφέρει εργαλεία για την ανάπτυξη προγραμμάτων.

Page 4: H γλώσσα Python

Ο διερμηνέας της Python(2)

• Μοιάζει με ένα τερματικό τύπου Unix και δέχεται την εισαγωγή εντολών.

π.χ python -c command [arg]Μας επιτρέπει επίσης την εισαγωγή παραμέτρων

στα προγράμματα .

Page 5: H γλώσσα Python

Ο διερμηνέας της Python(3)

Όταν ο διερμηνέας διαβάζει εντολές που πληκτρολογούμε εμείς λέμε ότι ο διερμηνέας βρίσκεται σε interactive mode.

Στο interactive mode περιμένει την επομένη εντολή με την βασική γραμμή εντολών ( >>> εντολή) και για συνεχιζόμενες γραμμές μια εντολής ή ενός μπλοκ εντολών χρησιμοποιεί 3 τελείες (...).

Page 6: H γλώσσα Python

Παράδειγμα

• >>> should_isay_hello=1>>>if should_isay_hello :• … print (“Hello World”)• …• Hello World

Page 7: H γλώσσα Python

Ο διερμηνέας της Python(4)

• Μερικά χαρακτηριστικά του διερμηνέας• Error Handling.• Εκτέλεση Python Scripts.• Αλλαγή του encoding του κώδικα ενός

προγράμματος.

Page 8: H γλώσσα Python

Δυναμική μνήμη

• Όπως αναφέραμε η Python χρησιμοποιεί δυναμικό σύστημα μνήμης και αυτόματη διαχείριση μνήμης.

 • Οι βασικές δομές δεδομένων είναι : οι

συμβολοσειρές και οι λίστες.

Page 9: H γλώσσα Python

Δυναμική μνήμη

• Υπάρχουν βέβαια και άλλοι τύποι δυναμικής μνήμης όπως τα sets,dictionaries(τα αντίστοιχα maps στην C++) και τα tuples.

Page 10: H γλώσσα Python

Συμβολοσειρές

• Μια συμβλοσειρά στην πραγματικότητα είναι μια δυναμική ακολουθία χαρακτήρων.

• Στην Python μια συμβολοσειρά μπορεί να εκφραστεί με πολλούς τρόπους

Page 11: H γλώσσα Python

Παράδειγμα

• >>> "doesn't"• "doesn't"• >>> '"Yes," he said.'• '"Yes," he said.'• >>> "\"Yes,\" he said."• '"Yes," he said.'• >>> '"Isn\'t," she said.'• '"Isn\'t," she said.'

Page 12: H γλώσσα Python

Συμβολοσειρές(2)

• Μια συμβολοσειρά μπορεί να είναι και παραπάνω από μια σειρές.

• Πρέπει η γραμμές να διαχωρίζονται από μια κάθετο \.

Page 13: H γλώσσα Python

Παράδειγμα

• hello = "This is a rather long string containing\n\

several lines of text just as you would do in C.\n\Note that whitespace at the beginning of the line

is\significant."

• print(hello)

Page 14: H γλώσσα Python

Συμβολοσειρές(3)

• Στην Python μπορούμε να διαχειριστούμε τις συμβολοσειρές με πολλούς τρόπους.• word = 'Help' + 'A'

>>> word'HelpA'>>> '<' + word*5 + '>''<HelpAHelpAHelpAHelpAHelpA>'

Page 15: H γλώσσα Python

Συμβολοσειρές(3)(συνέχεια)

• >>> 'Hel' 'lo' 'Hello'>>> 'Wor'.strip() + 'ld' 'World'

Page 16: H γλώσσα Python

Συμβολοσειρές(4)

• Μπορούμε επίσης να προσπελάσουμε την συμβολοσειρά μας ανά στοιχείο όπως την C

• πχ.>>>lng=”Python”>>>lng[0]P

Page 17: H γλώσσα Python

Συμβολοσειρές(4)(συνεχεια)

• Επίσης έχουμε την δυνατότητα να ορίσουμε όρια στον δείκτη προσπέλασης της συμβολοσειράς.

• πχ.>>lng[0:4] #Apo 0 eos 4 Pytho>>lng[2:]#Ola ektos apo tous 2 protous thon

Page 18: H γλώσσα Python

Συμβολοσειρές(5)

• Oι συμβολοσειρές στην Python αντίθετα με την C δεν είναι μεταβλητές.

• Επίσης στην Python μπορούμε να έχουμε αρνητικό αριθμό ως δείκτη προσπέλασης μια συμβολοσειράς.

Page 19: H γλώσσα Python

Παράδειγμα

• >>> lng[-1] # O teleytaios xaraktiras• 'n'• >>> lng[-2] # O proteleytaios• 'o'• >>> lng[-2:] # Oi dyo teleyataioi• 'on'• >>> lng[:-2] # Oloi ektos apo tous 2 teleytaious• 'Pyth'

Page 20: H γλώσσα Python

Παράδειγμα

• +---+---+---+---+---+• | P | y | t | h | o | n |• +---+---+---+---+---+• 0 1 2 3 4 5 6 • -6 -5 -4 -3 -2 -1

Page 21: H γλώσσα Python

Λίστες

• Οι λίστες στην Python είναι ο δεύτερος βασικός τύπος δυναμικής μνήμης.

• >>>list1=['Pink','Floyd',3,1973]>>>a['Pink','Floyd',3,1973]

Page 22: H γλώσσα Python

Λίστες(2)

• Όπωςκαι οι συμβολοσειρές έτσι και οι λίστες μπορούν οριστούν όρια στον δείκτη προσπέλασης.

• Αρχίζουν και αυτές από το στοιχείο 0• Μπορούν να υποστούν αλλαγή μεγέθους.

Page 23: H γλώσσα Python

Παράδειγμα

• >>> list1[0]• 'Pink'• >>> list1[3]• 1973• >>> list1[-2]• 3• >>> list1[1:-1]• ['Floyd', 3]

Page 24: H γλώσσα Python

Παραδειγμα

• >>> list1[:2] + ['Wall', 1979]• ['Pink', 'Floyd', 'Wall', 1979]• >>> 3*list1[:3] + ['Breathe!']• ['Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Pink',

'Floyd', 3, 'Breathe!']

Page 25: H γλώσσα Python

Λίστες (3)

• Σε αντίθεση με τις συμβολοσειρές στις λίστες μπορούμε να μεταβάλουμε το περιεχόμενο ενός στοιχείου.

• >>> list1• ['Pink', 'Floyd', 3, 1973]• >>> list1[2] = list1[2] + 23

>>> list1['Pink', 'Floyd', 26, 1973]

Page 26: H γλώσσα Python

Λίστες (3)

• Επίσης μπορούμε να θέσουμε τα όρια και να κάνουμε αλλαγές εντός των ορίων που θέσαμε.

• >>> # Replace some items:... list1[0:2] = ['Led', 'Zeppelin']• >>> a

['Led','Zeppelin',26,1973]

Page 27: H γλώσσα Python

Λίστες (4)

• Επίσης η συνάρτηση len() χρησιμοποιείται στις λίστες και επιστρέφει το μέγεθος μιας λίστας.

• >>>len(list1)4

Page 28: H γλώσσα Python

If Statement

• Η συνθήκη if λειτουργεί όπως ακριβώς ξέρουμε και από άλλες γλώσσες προγραμματισμού.

• Με την μόνη διαφορά ότι δεν είναι else if είναι elif.

Page 29: H γλώσσα Python

Παράδειγμα

• >>> x = int(input("Please enter an integer: "))• Please enter an integer: 42• >>> if x < 0:• ... x = 0• ... print('Negative changed to zero')• ... elif x == 0:• ... print('Zero')• ... elif x == 1:• ... print('Single')

Page 30: H γλώσσα Python

Παράδειγμα

• ... else:• ... print('More')• ...• More

Page 31: H γλώσσα Python

Statement for

• Στην Python η συνθήκη for διαφέρει λίγο από ότι έχουμε σε άλλες γλώσσες όπως η C ή Java.

• Στην Python η ακολουθία που εκτελείται στην επανάληψη γίνεται μεταξύ των αντικειμένων μιας δυναμικής ακολουθίας (πχ μια λίστα).

Page 32: H γλώσσα Python

Παράδειγμα

• >>> # Paradeigma for stin Python:• ... s1 = ['Ubuntu', 'Fedora', 'Slackware']

>>> for x in s1:... print(x, len(x))...Ubuntu 6Fedora 6Slackware 9

Page 33: H γλώσσα Python

Stament for (2)

• Δεν είναι ασφαλές να τροποποιούμε μια δυναμική ακολουθία (αυτό κυρίως απευθύνεται σε ακολουθίες όπως οι λίστες) την οποία έχουμε μέσα σε μια for.

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

Page 34: H γλώσσα Python

Παράδειγμα

• >>> for x in s1[:]: # Dimiourgoume ena antigrapho tis s1

• ... if len(x) > 6: s1.insert(0, x)• ...• >>> s1• ['Slackware', 'Ubuntu', 'Fedora', 'Slackware']

Page 35: H γλώσσα Python

range() function

• Αν χρειαστεί να προσπελάσουμε με την βοήθεια μιας αριθμητικής ακολουθίας σε μια for τότε η συνάρτηση range() γίνεται πολύ χρήσιμη.

• H συνάρτηση range() δημιουργεί μια ακολουθία αριθμών μεταξύ του startpoint & endpoint που δέχεται ως ορίσματα.

• range(startpoint,endpoint)

Page 36: H γλώσσα Python

Παράδειγμα

• >>> for i in range(5):• ... print(i)• ...• 0• 1• 2• 3• 4

Page 37: H γλώσσα Python

range() function (2)

• To endpoint δεν είναι μέρος της ακολουθίας.• Δηλαδή αν εκτελέσουμε range(10) θα

πάρουμε τους αριθμούς από 0-9.• Μπορούμε να θέσουμε και το βήμα με το

οποίο θα αυξάνεται η ακολουθία μας.

Page 38: H γλώσσα Python

Παράδειγμα

• range(5, 10)• 5 through 9

• range(0, 10, 3)• 0, 3, 6, 9

• range(-10, -100, -30)• -10, -40, -70

Page 39: H γλώσσα Python

Παράδειγμα

• >>> a = ['Dark', 'Side', 'of', 'the', 'Moon']• >>> for i in range(len(a)):• ... print(i, a[i])• ...• 0 Dark• 1 Side• 2 of• 3 the• 4 Moon

Page 40: H γλώσσα Python

Συναρτήσεις

• >>> def fib(n): # Sinartisi akolouthias fibonacci • ... """Ektiposi mias akolouthias fibonacci"""• ... a, b = 0, 1• ... while b < n:• ... print(b, end=' ')• ... a, b = b, a+b• ... print()• ...• >>> # Klisi sinartisis:• ... fib(2000)• 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

1597

Page 41: H γλώσσα Python

Συναρτήσεις

• Στην Python ορίζουμε συναρτήσεις με την λέξη def.

• Δίπλα από την λέξη def είναι το όνομα και οι παράμετροι της συνάρτησης.

• Το σώμα της συνάρτησης αρχίζει στην επομένη γραμμή από κάτω.

Page 42: H γλώσσα Python

Συναρτήσεις (2)

• Η δημιουργία μια συνάρτησης δημιουργεί ένα τοπικό όνομα συνάρτησης και έχει μια τιμή που αναγνωρίζεται ως user-defined function.

• Αυτό το όνομα μπορούμε να το αναθέσουμε σε ένα καινούργιο σύμβολο και να χρησιμοποιούμε και αυτό με το ίδιο αποτέλεσμα.

Page 43: H γλώσσα Python

Παράδειγμα

• >>> fib• <function fib at 10042ed0>• >>> f = fib• >>> f(100)• 1 1 2 3 5 8 13 21 34 55 89

Page 44: H γλώσσα Python

Συναρτήσεις (3)

• Η συνάρτηση fib που ορίσαμε δεν επιστρέφει καμία τιμή.

>>> fib(0)• >>> print(fib(0))• None

Page 45: H γλώσσα Python

Συναρτήσεις (3)

• Μπορούμε να δημιουργούμε συναρτήσεις οι οποίες μπορούν να επιστρέφουν ένα αποτέλεσμα.

• Είναι πολύ εύκολο να γράψουμε την συνάρτηση fib να επιστρέφει μια λίστα αντί να εκτυπώνει την ακολουθία.

Page 46: H γλώσσα Python

Παράδειγμα

• >>> def fib2(n): # epistrofi akolouthias fibonacci• ... """Epistrofi mias listas me ta apotelesmata akolouthias

fibonacci gia n."""• ... result = []• ... a, b = 0, 1• ... while b < n:• ... result.append(b) • ... a, b = b, a+b• ... return result• ...• >>> f100 = fib2(100) # klisi sinartisis• >>> f100 # ektiposi apotelesmatos• [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Page 47: H γλώσσα Python

Συναρτήσεις (4)

• Μπορούμε να γράψουμε και συναρτήσεις με μεταβλητό αριθμό arguments.Υπάρχουν 3 τρόποι και οι συνδυασμοί τους.

• Default Argument Values• Κeyword Arguments• Arbitary Argument List.

Page 48: H γλώσσα Python

Default Argument Values

• Όταν ορίζουμε μια συνάρτηση μπορούμε να έχουμε προκαθορισμένες τιμές για ένα argument.

• Αυτό μας βοηθάει στο ότι μπορούμε να καλέσουμε την συνάρτηση και να δώσουμε λιγότερα ορίσματα αφού υπάρχουν προκαθορισμένες τιμές.

Page 49: H γλώσσα Python

Παράδειγμα

• def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):

• while True:• ok = input(prompt)• if ok in ('y', 'ye', 'yes'):• return True• if ok in ('n', 'no', 'nop', 'nope'):• return False• retries = retries - 1• if retries < 0:• raise IOError('refusenik user')• print(complaint)

Page 50: H γλώσσα Python

Keyword Arguments

• Μια συνάρτηση μπορεί να κληθεί χρησιμοποιώντας keyword arguments του τύπου keyword=value.

Page 51: H γλώσσα Python

Παράδειγμα

• def Band(members_num=0, guitar='None', bass='None', singer='None',drums='None'):

• print("The band has”,members,”members.”)• print("Singer for the band:", singer)• print(“Guitarist for the band:”,guitar)• print(“Bass Player for the band:”,bass)

print(“Drums player for the band:”,drums)

Page 52: H γλώσσα Python

Παράδειγμα

• >>>band()• The band has 0 members• Singer for the band:None• Guitarist for the band:None• Bass Player for the band:None

Drums player for the band:None

Page 53: H γλώσσα Python

Παράδειγμα

• band(member_num=4,guitar='Jimmy Page',bass='John Paul Jones',singer='Robert Plant',drums='John Bonham'

• The band has 4 members• Singer for the band: Robert Plant• Guitarist for the band: Jimmy Page• Bass Player for the band: John Paul Jones

Drums player for the band: John Bonham

Page 54: H γλώσσα Python

Keyword Arguments

• Επίσης μπορούμε να δηλώσουμε keyword arguments με αλλο τρόπο.

Page 55: H γλώσσα Python

Κeyword Arguments

• def cheeseshop(kind, *arguments, **keywords):

• print("-- Do you have any", kind, "?")• print("-- I'm sorry, we're all out of", kind)• for arg in arguments: print(arg)• print("-" * 40)• keys = sorted(keywords.keys())• for kw in keys: print(kw, ":", keywords[kw])

Page 56: H γλώσσα Python

Keyword Arguments

• Η κλήση της παραπάνω συνάρτησης θα γίνει κάπως έτσι.

• cheeseshop("Limburger", "It's very runny, sir.",• "It's really very, VERY runny, sir.",• shopkeeper="Michael Palin",• client="John Cleese",• sketch="Cheese Shop Sketch")

Page 57: H γλώσσα Python

Κeyword Arguments

• Kαι το αποτέλεσμα :• -- Do you have any Limburger ?• -- I'm sorry, we're all out of Limburger• It's very runny, sir.• It's really very, VERY runny, sir.• ----------------------------------------• client : John Cleese• shopkeeper : Michael Palin• sketch : Cheese Shop Sketch

Page 58: H γλώσσα Python

Arbitrary Argument Lists

• Τέλος μπορούμε να απλά να βάλουμε τα ορίσματα μιας συνάρτησης σε μια δυναμική ακολουθία (πχ μια λίστα) και να τα περάσουμε από εκεί.

Page 59: H γλώσσα Python

Παράδειγμα

• >>> def concat(*args, sep="/"):• ... return sep.join(args)• ...• >>> concat("earth", "mars", "venus")• 'earth/mars/venus'• >>> concat("earth", "mars", "venus", sep=".")• 'earth.mars.venus'

Page 60: H γλώσσα Python

Κλάσεις

• Η Python εφόσον υποστηρίζει αντικειμενοστραφή λογική δίνει την δυνατότητα για τον ορισμό κλάσεων.

Page 61: H γλώσσα Python

Class Definition

• class ClassName:• <statement-1>• .• .• .• <statement-N>

Page 62: H γλώσσα Python

Class Definition.

• Όπως και στις συναρτήσεις έτσι και στις κλάσεις πρέπει πρώτα να γίνει η δήλωση προτού υπάρξει κάποιο αποτέλεσμα.

• Συνήθως μέσα σε μια κλάση έχουμε τις δηλώσεις των ιδιοτήτων και των μεθόδων της.

Page 63: H γλώσσα Python

Παράδειγμα

• class MyClass:• """Mia apli class"""• I = 12345 #idiotita.• def f(self): #methodos.• return 'hello world'

Page 64: H γλώσσα Python

Class Objects

• Tα αντικείμενα μιας κλάσης υποστηρίζουν 2 είδη λειτουργιών.

• Αttribute Reference• Instantiation

Page 65: H γλώσσα Python

Attribute Reference

• Όταν έχουμε ένα αντικείμενο μιας κλάσης,τότε αυτό έχει τα χαρακτηριστικά της κλάσης που ανήκει.

• Έχουμε την δυνατότητα να αναφερθούμε σε αυτά.

• Σύμφωνα με το Python Syntax μπορούμε να αναφερθούμε σε ένα attribute με αυτόν τον τρόπο

• obj.atrr_name

Page 66: H γλώσσα Python

Instantiation

Όταν δημιουργούμε ένα αντικείμενο μιας κλάσης τότε του δίνουμε μια υπόσταση που υπακούει στην δήλωση της αντίστοιχης κλάσης.

• Αυτή η διαδικασία ονομάζεται instantiation και γίνεται με την κλήση μιας συνάρτησης δημιουργού.

Page 67: H γλώσσα Python

Μέθοδος Δημιουργός

• Μια μέθοδος δημιουργός μέσα σε μια κλάση στην Python συντάσσεται κατά αυτόν τον τρόπο.

• def __init__(argument1,argument2,...)• Είναι μια μέθοδος που χρησιμοποιείται όταν

δίνουμε σε ένα αντικείμενο μια υπόσταση και μας βοηθάει να καθορίσουμε τις ιδιότητες της υπόστασης αυτής για την οποία έγινε η κλήση.

Page 68: H γλώσσα Python

Παράδειγμα

• >>> class Complex:• ... def __init__(self, realpart, imagpart):• ... self.r = realpart• ... self.i = imagpart• ...• >>> x = Complex(3.0, -4.5)• >>> x.r, x.i• (3.0, -4.5)

Page 69: H γλώσσα Python

Instance Objects

• Αναφορά σε ιδιότητα:myobject.x• Αναφορά σε μέθοδο:

mybject.foo()