Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεMinerva Athanas Τροποποιήθηκε πριν 10 χρόνια
1
H γλώσσα Python H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό. Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α
2
H γλώσσα Python Χρησιμοποιεί ένα πλήρες δυναμικό σύστημα και αυτόματη διαχείριση της μνήμης Για αυτό τον λόγο χρησιμοποιείτε συνήθως ως scripting language.
3
Ο διερμηνέας της Python(1)
O διερμηνέας(interpreter) της Python είναι το βασικό περιβάλλον της γλώσσας γιατί εκεί λαμβάνουν δράση όλες η διαδικασίες που αφορούν την γλώσσα. Είναι υπεύθυνος για την εκτέλεση των προγραμμάτων και προσφέρει εργαλεία για την ανάπτυξη προγραμμάτων.
4
Ο διερμηνέας της Python(2)
Μοιάζει με ένα τερματικό τύπου Unix και δέχεται την εισαγωγή εντολών. π.χ python -c command [arg] Μας επιτρέπει επίσης την εισαγωγή παραμέτρων στα προγράμματα .
5
Ο διερμηνέας της Python(3)
Όταν ο διερμηνέας διαβάζει εντολές που πληκτρολογούμε εμείς λέμε ότι ο διερμηνέας βρίσκεται σε interactive mode. Στο interactive mode περιμένει την επομένη εντολή με την βασική γραμμή εντολών ( >>> εντολή) και για συνεχιζόμενες γραμμές μια εντολής ή ενός μπλοκ εντολών χρησιμοποιεί 3 τελείες (...).
6
Παράδειγμα >>> should_isay_hello=1
>>>if should_isay_hello : … print (“Hello World”) … Hello World
7
Ο διερμηνέας της Python(4)
Μερικά χαρακτηριστικά του διερμηνέας Error Handling. Εκτέλεση Python Scripts. Αλλαγή του encoding του κώδικα ενός προγράμματος.
8
Δυναμική μνήμη Όπως αναφέραμε η Python χρησιμοποιεί δυναμικό σύστημα μνήμης και αυτόματη διαχείριση μνήμης. Οι βασικές δομές δεδομένων είναι : οι συμβολοσειρές και οι λίστες.
9
Δυναμική μνήμη Υπάρχουν βέβαια και άλλοι τύποι δυναμικής μνήμης όπως τα sets,dictionaries(τα αντίστοιχα maps στην C++) και τα tuples.
10
Συμβολοσειρές Μια συμβλοσειρά στην πραγματικότητα είναι μια δυναμική ακολουθία χαρακτήρων. Στην Python μια συμβολοσειρά μπορεί να εκφραστεί με πολλούς τρόπους
11
Παράδειγμα >>> "doesn't" "doesn't"
>>> '"Yes," he said.' '"Yes," he said.' >>> "\"Yes,\" he said." >>> '"Isn\'t," she said.' '"Isn\'t," she said.'
12
Συμβολοσειρές(2) Μια συμβολοσειρά μπορεί να είναι και παραπάνω από μια σειρές. Πρέπει η γραμμές να διαχωρίζονται από μια κάθετο \.
13
Παράδειγμα 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)
14
Συμβολοσειρές(3) Στην Python μπορούμε να διαχειριστούμε τις
συμβολοσειρές με πολλούς τρόπους. word = 'Help' + 'A' >>> word 'HelpA' >>> '<' + word*5 + '>' '<HelpAHelpAHelpAHelpAHelpA>'
15
Συμβολοσειρές(3)(συνέχεια)
>>> 'Hel' 'lo' 'Hello' >>> 'Wor'.strip() + 'ld' 'World'
16
Συμβολοσειρές(4) Μπορούμε επίσης να προσπελάσουμε την συμβολοσειρά μας ανά στοιχείο όπως την C πχ. >>>lng=”Python” >>>lng[0] P
17
Συμβολοσειρές(4)(συνεχεια)
Επίσης έχουμε την δυνατότητα να ορίσουμε όρια στον δείκτη προσπέλασης της συμβολοσειράς. πχ. >>lng[0:4] #Apo 0 eos 4 Pytho >>lng[2:]#Ola ektos apo tous 2 protous thon
18
Συμβολοσειρές(5) Oι συμβολοσειρές στην Python αντίθετα με την C δεν είναι μεταβλητές. Επίσης στην Python μπορούμε να έχουμε αρνητικό αριθμό ως δείκτη προσπέλασης μια συμβολοσειράς.
19
Παράδειγμα >>> 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'
20
Παράδειγμα +---+---+---+---+---+ | P | y | t | h | o | n |
21
Λίστες Οι λίστες στην Python είναι ο δεύτερος βασικός τύπος δυναμικής μνήμης. >>>list1=['Pink','Floyd',3,1973] >>>a ['Pink','Floyd',3,1973]
22
Λίστες(2) Όπωςκαι οι συμβολοσειρές έτσι και οι λίστες μπορούν οριστούν όρια στον δείκτη προσπέλασης. Αρχίζουν και αυτές από το στοιχείο 0 Μπορούν να υποστούν αλλαγή μεγέθους.
23
Παράδειγμα >>> list1[0] 'Pink' >>> list1[3] 1973
['Floyd', 3]
24
Παραδειγμα >>> list1[:2] + ['Wall', 1979]
['Pink', 'Floyd', 'Wall', 1979] >>> 3*list1[:3] + ['Breathe!'] ['Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Breathe!']
25
Λίστες (3) Σε αντίθεση με τις συμβολοσειρές στις λίστες μπορούμε να μεταβάλουμε το περιεχόμενο ενός στοιχείου. >>> list1 ['Pink', 'Floyd', 3, 1973] >>> list1[2] = list1[2] + 23 ['Pink', 'Floyd', 26, 1973]
26
Λίστες (3) Επίσης μπορούμε να θέσουμε τα όρια και να κάνουμε αλλαγές εντός των ορίων που θέσαμε. >>> # Replace some items: ... list1[0:2] = ['Led', 'Zeppelin'] >>> a ['Led','Zeppelin',26,1973]
27
Λίστες (4) Επίσης η συνάρτηση len() χρησιμοποιείται στις λίστες και επιστρέφει το μέγεθος μιας λίστας. >>>len(list1) 4
28
If Statement Η συνθήκη if λειτουργεί όπως ακριβώς ξέρουμε και από άλλες γλώσσες προγραμματισμού. Με την μόνη διαφορά ότι δεν είναι else if είναι elif.
29
Παράδειγμα >>> x = int(input("Please enter an integer: "))
>>> if x < 0: ... x = 0 ... print('Negative changed to zero') ... elif x == 0: ... print('Zero') ... elif x == 1: ... print('Single')
30
... else: ... print('More') ... More
Παράδειγμα ... else: ... print('More') ... More
31
Statement for Στην Python η συνθήκη for διαφέρει λίγο από ότι έχουμε σε άλλες γλώσσες όπως η C ή Java. Στην Python η ακολουθία που εκτελείται στην επανάληψη γίνεται μεταξύ των αντικειμένων μιας δυναμικής ακολουθίας (πχ μια λίστα).
32
Παράδειγμα >>> # Paradeigma for stin Python:
... s1 = ['Ubuntu', 'Fedora', 'Slackware'] >>> for x in s1: ... print(x, len(x)) ... Ubuntu 6 Fedora 6 Slackware 9
33
Stament for (2) Δεν είναι ασφαλές να τροποποιούμε μια δυναμική ακολουθία (αυτό κυρίως απευθύνεται σε ακολουθίες όπως οι λίστες) την οποία έχουμε μέσα σε μια for. Μια καλή λύση είναι να βάλουμε ένα αντίγραφο της ακολουθίας με την βοήθεια των ορίων προσπέλασης.
34
Παράδειγμα >>> for x in s1[:]: # Dimiourgoume ena antigrapho tis s1 ... if len(x) > 6: s1.insert(0, x) ... >>> s1 ['Slackware', 'Ubuntu', 'Fedora', 'Slackware']
35
range() function Αν χρειαστεί να προσπελάσουμε με την βοήθεια μιας αριθμητικής ακολουθίας σε μια for τότε η συνάρτηση range() γίνεται πολύ χρήσιμη. H συνάρτηση range() δημιουργεί μια ακολουθία αριθμών μεταξύ του startpoint & endpoint που δέχεται ως ορίσματα. range(startpoint,endpoint)
36
>>> for i in range(5): ... print(i) ... 1 2 3 4
Παράδειγμα >>> for i in range(5): ... print(i) ... 1 2 3 4
37
range() function (2) To endpoint δεν είναι μέρος της ακολουθίας.
Μπορούμε να θέσουμε και το βήμα με το οποίο θα αυξάνεται η ακολουθία μας.
38
Παράδειγμα range(5, 10) 5 through 9 range(0, 10, 3) 0, 3, 6, 9
-10, -40, -70
39
Παράδειγμα >>> 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
40
Συναρτήσεις >>> 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)
41
Συναρτήσεις Στην Python ορίζουμε συναρτήσεις με την λέξη def.
Το σώμα της συνάρτησης αρχίζει στην επομένη γραμμή από κάτω.
42
Συναρτήσεις (2) Η δημιουργία μια συνάρτησης δημιουργεί ένα τοπικό όνομα συνάρτησης και έχει μια τιμή που αναγνωρίζεται ως user-defined function. Αυτό το όνομα μπορούμε να το αναθέσουμε σε ένα καινούργιο σύμβολο και να χρησιμοποιούμε και αυτό με το ίδιο αποτέλεσμα.
43
Παράδειγμα >>> fib <function fib at 10042ed0>
>>> f = fib >>> f(100)
44
Συναρτήσεις (3) Η συνάρτηση fib που ορίσαμε δεν επιστρέφει καμία τιμή.
>>> print(fib(0)) None
45
Συναρτήσεις (3) Μπορούμε να δημιουργούμε συναρτήσεις οι οποίες μπορούν να επιστρέφουν ένα αποτέλεσμα. Είναι πολύ εύκολο να γράψουμε την συνάρτηση fib να επιστρέφει μια λίστα αντί να εκτυπώνει την ακολουθία.
46
Παράδειγμα >>> 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]
47
Συναρτήσεις (4) Μπορούμε να γράψουμε και συναρτήσεις με μεταβλητό αριθμό arguments.Υπάρχουν 3 τρόποι και οι συνδυασμοί τους. Default Argument Values Κeyword Arguments Arbitary Argument List.
48
Default Argument Values
Αυτό μας βοηθάει στο ότι μπορούμε να καλέσουμε την συνάρτηση και να δώσουμε λιγότερα ορίσματα αφού υπάρχουν προκαθορισμένες τιμές.
49
Παράδειγμα 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)
50
Keyword Arguments Μια συνάρτηση μπορεί να κληθεί χρησιμοποιώντας keyword arguments του τύπου keyword=value.
51
Παράδειγμα 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)
52
Παράδειγμα >>>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
53
Παράδειγμα 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
54
Επίσης μπορούμε να δηλώσουμε keyword arguments με αλλο τρόπο.
55
Κ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])
56
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")
57
Κ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
58
Arbitrary Argument Lists
Τέλος μπορούμε να απλά να βάλουμε τα ορίσματα μιας συνάρτησης σε μια δυναμική ακολουθία (πχ μια λίστα) και να τα περάσουμε από εκεί.
59
Παράδειγμα >>> def concat(*args, sep="/"):
... return sep.join(args) ... >>> concat("earth", "mars", "venus") 'earth/mars/venus' >>> concat("earth", "mars", "venus", sep=".") 'earth.mars.venus'
60
Κλάσεις Η Python εφόσον υποστηρίζει αντικειμενοστραφή λογική δίνει την δυνατότητα για τον ορισμό κλάσεων.
61
class ClassName: <statement-1> . <statement-N>
Class Definition class ClassName: <statement-1> . <statement-N>
62
Class Definition. Όπως και στις συναρτήσεις έτσι και στις κλάσεις πρέπει πρώτα να γίνει η δήλωση προτού υπάρξει κάποιο αποτέλεσμα. Συνήθως μέσα σε μια κλάση έχουμε τις δηλώσεις των ιδιοτήτων και των μεθόδων της.
63
Παράδειγμα class MyClass: """Mia apli class""" I = 12345 #idiotita.
def f(self): #methodos. return 'hello world'
64
Class Objects Tα αντικείμενα μιας κλάσης υποστηρίζουν 2 είδη λειτουργιών. Αttribute Reference Instantiation
65
Attribute Reference Όταν έχουμε ένα αντικείμενο μιας κλάσης,τότε αυτό έχει τα χαρακτηριστικά της κλάσης που ανήκει. Έχουμε την δυνατότητα να αναφερθούμε σε αυτά. Σύμφωνα με το Python Syntax μπορούμε να αναφερθούμε σε ένα attribute με αυτόν τον τρόπο obj.atrr_name
66
Instantiation Όταν δημιουργούμε ένα αντικείμενο μιας κλάσης τότε του δίνουμε μια υπόσταση που υπακούει στην δήλωση της αντίστοιχης κλάσης. Αυτή η διαδικασία ονομάζεται instantiation και γίνεται με την κλήση μιας συνάρτησης δημιουργού.
67
Μέθοδος Δημιουργός Μια μέθοδος δημιουργός μέσα σε μια κλάση στην Python συντάσσεται κατά αυτόν τον τρόπο. def __init__(argument1,argument2,...) Είναι μια μέθοδος που χρησιμοποιείται όταν δίνουμε σε ένα αντικείμενο μια υπόσταση και μας βοηθάει να καθορίσουμε τις ιδιότητες της υπόστασης αυτής για την οποία έγινε η κλήση.
68
Παράδειγμα >>> 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)
69
Αναφορά σε ιδιότητα: myobject.x Αναφορά σε μέθοδο: mybject.foo()
Instance Objects Αναφορά σε ιδιότητα: myobject.x Αναφορά σε μέθοδο: mybject.foo()
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.