740 likes | 1.05k Views
H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό. Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α. H γλώσσα Python.
E N D
H Python είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικής χρήσεως.Οι δημιουργοί της υποστηρίζουν ότι συνδυάζει μεγάλη δύναμη με πολύ καθαρό συντακτικό. Η Python υποστηρίζει πολλαπλές προγραμματιστικές λογικές όπως αντικειμενοστραφής λογική,συναρτησιακή κ.α H γλώσσα Python
Χρησιμοποιεί ένα πλήρες δυναμικό σύστημα και αυτόματη διαχείριση της μνήμης Για αυτό τον λόγο χρησιμοποιείτε συνήθως ως scripting language. H γλώσσα Python
O διερμηνέας(interpreter) της Python είναι το βασικό περιβάλλον της γλώσσας γιατί εκεί λαμβάνουν δράση όλες η διαδικασίες που αφορούν την γλώσσα. Είναι υπεύθυνος για την εκτέλεση των προγραμμάτων και προσφέρει εργαλεία για την ανάπτυξη προγραμμάτων. Ο διερμηνέας της Python(1)
Μοιάζει με ένα τερματικό τύπου Unix και δέχεται την εισαγωγή εντολών. π.χ python -c command [arg] Μας επιτρέπει επίσης την εισαγωγή παραμέτρων στα προγράμματα . Ο διερμηνέας της Python(2)
Όταν ο διερμηνέας διαβάζει εντολές που πληκτρολογούμε εμείς λέμε ότι ο διερμηνέας βρίσκεται σε interactive mode. Στο interactive mode περιμένει την επομένη εντολή με την βασική γραμμή εντολών ( >>> εντολή) και για συνεχιζόμενες γραμμές μια εντολής ή ενός μπλοκ εντολών χρησιμοποιεί 3 τελείες (...). Ο διερμηνέας της Python(3)
>>> should_isay_hello=1 >>>if should_isay_hello : … print (“Hello World”) … Hello World Παράδειγμα
Μερικά χαρακτηριστικά του διερμηνέας Error Handling. Εκτέλεση Python Scripts. Αλλαγή του encoding του κώδικα ενός προγράμματος. Ο διερμηνέας της Python(4)
Όπως αναφέραμε η Python χρησιμοποιεί δυναμικό σύστημα μνήμης και αυτόματη διαχείριση μνήμης. Οι βασικές δομές δεδομένων είναι : οι συμβολοσειρές και οι λίστες. Δυναμική μνήμη
Υπάρχουν βέβαια και άλλοι τύποι δυναμικής μνήμης όπως τα sets,dictionaries(τα αντίστοιχα maps στην C++) και τα tuples. Δυναμική μνήμη
Μια συμβλοσειρά στην πραγματικότητα είναι μια δυναμική ακολουθία χαρακτήρων. Στην 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.' Παράδειγμα
Μια συμβολοσειρά μπορεί να είναι και παραπάνω από μια σειρές. Πρέπει η γραμμές να διαχωρίζονται από μια κάθετο \. Συμβολοσειρές(2)
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) Παράδειγμα
Στην Python μπορούμε να διαχειριστούμε τις συμβολοσειρές με πολλούς τρόπους. word = 'Help' + 'A' >>> word 'HelpA' >>> '<' + word*5 + '>' '<HelpAHelpAHelpAHelpAHelpA>' Συμβολοσειρές(3)
>>> 'Hel' 'lo' 'Hello' >>> 'Wor'.strip() + 'ld' 'World' Συμβολοσειρές(3)(συνέχεια)
Μπορούμε επίσης να προσπελάσουμε την συμβολοσειρά μας ανά στοιχείο όπως την C πχ. >>>lng=”Python” >>>lng[0] P Συμβολοσειρές(4)
Επίσης έχουμε την δυνατότητα να ορίσουμε όρια στον δείκτη προσπέλασης της συμβολοσειράς. πχ. >>lng[0:4] #Apo 0 eos 4 Pytho >>lng[2:]#Ola ektos apo tous 2 protous thon Συμβολοσειρές(4)(συνεχεια)
Oι συμβολοσειρές στην Python αντίθετα με την C δεν είναι μεταβλητές. Επίσης στην Python μπορούμε να έχουμε αρνητικό αριθμό ως δείκτη προσπέλασης μια συμβολοσειράς. Συμβολοσειρές(5)
>>> 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' Παράδειγμα
+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1 Παράδειγμα
Οι λίστες στην Python είναι ο δεύτερος βασικός τύπος δυναμικής μνήμης. >>>list1=['Pink','Floyd',3,1973] >>>a ['Pink','Floyd',3,1973] Λίστες
Όπωςκαι οι συμβολοσειρές έτσι και οι λίστες μπορούν οριστούν όρια στον δείκτη προσπέλασης. Αρχίζουν και αυτές από το στοιχείο 0 Μπορούν να υποστούν αλλαγή μεγέθους. Λίστες(2)
>>> list1[0] 'Pink' >>> list1[3] 1973 >>> list1[-2] 3 >>> list1[1:-1] ['Floyd', 3] Παράδειγμα
>>> list1[:2] + ['Wall', 1979] ['Pink', 'Floyd', 'Wall', 1979] >>> 3*list1[:3] + ['Breathe!'] ['Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Pink', 'Floyd', 3, 'Breathe!'] Παραδειγμα
Σε αντίθεση με τις συμβολοσειρές στις λίστες μπορούμε να μεταβάλουμε το περιεχόμενο ενός στοιχείου. >>> list1 ['Pink', 'Floyd', 3, 1973] >>> list1[2] = list1[2] + 23 >>> list1 ['Pink', 'Floyd', 26, 1973] Λίστες (3)
Επίσης μπορούμε να θέσουμε τα όρια και να κάνουμε αλλαγές εντός των ορίων που θέσαμε. >>> # Replace some items: ... list1[0:2] = ['Led', 'Zeppelin'] >>> a ['Led','Zeppelin',26,1973] Λίστες (3)
Επίσης η συνάρτηση len() χρησιμοποιείται στις λίστες και επιστρέφει το μέγεθος μιας λίστας. >>>len(list1) 4 Λίστες (4)
Η συνθήκη if λειτουργεί όπως ακριβώς ξέρουμε και από άλλες γλώσσες προγραμματισμού. Με την μόνη διαφορά ότι δεν είναι else if είναι elif. If Statement
>>> 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') Παράδειγμα
... else: ... print('More') ... More Παράδειγμα
Στην Python η συνθήκη for διαφέρει λίγο από ότι έχουμε σε άλλες γλώσσες όπως η C ή Java. Στην Python η ακολουθία που εκτελείται στην επανάληψη γίνεται μεταξύ των αντικειμένων μιας δυναμικής ακολουθίας (πχ μια λίστα). Statement for
>>> # Paradeigma for stin Python: ... s1 = ['Ubuntu', 'Fedora', 'Slackware'] >>> for x in s1: ... print(x, len(x)) ... Ubuntu 6 Fedora 6 Slackware 9 Παράδειγμα
Δεν είναι ασφαλές να τροποποιούμε μια δυναμική ακολουθία (αυτό κυρίως απευθύνεται σε ακολουθίες όπως οι λίστες) την οποία έχουμε μέσα σε μια for. Μια καλή λύση είναι να βάλουμε ένα αντίγραφο της ακολουθίας με την βοήθεια των ορίων προσπέλασης. Stament for (2)
>>> for x in s1[:]: # Dimiourgoume ena antigrapho tis s1 ... if len(x) > 6: s1.insert(0, x) ... >>> s1 ['Slackware', 'Ubuntu', 'Fedora', 'Slackware'] Παράδειγμα
Αν χρειαστεί να προσπελάσουμε με την βοήθεια μιας αριθμητικής ακολουθίας σε μια for τότε η συνάρτηση range() γίνεται πολύ χρήσιμη. H συνάρτηση range() δημιουργεί μια ακολουθία αριθμών μεταξύ του startpoint & endpoint που δέχεται ως ορίσματα. range(startpoint,endpoint) range() function
>>> for i in range(5): ... print(i) ... 0 1 2 3 4 Παράδειγμα
To endpoint δεν είναι μέρος της ακολουθίας. Δηλαδή αν εκτελέσουμε range(10) θα πάρουμε τους αριθμούς από 0-9. Μπορούμε να θέσουμε και το βήμα με το οποίο θα αυξάνεται η ακολουθία μας. range() function (2)
range(5, 10) 5 through 9 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70 Παράδειγμα
>>> 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 Παράδειγμα
>>> 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 Συναρτήσεις
Στην Python ορίζουμε συναρτήσεις με την λέξη def. Δίπλα από την λέξη def είναι το όνομα και οι παράμετροι της συνάρτησης. Το σώμα της συνάρτησης αρχίζει στην επομένη γραμμή από κάτω. Συναρτήσεις
Η δημιουργία μια συνάρτησης δημιουργεί ένα τοπικό όνομα συνάρτησης και έχει μια τιμή που αναγνωρίζεται ως user-defined function. Αυτό το όνομα μπορούμε να το αναθέσουμε σε ένα καινούργιο σύμβολο και να χρησιμοποιούμε και αυτό με το ίδιο αποτέλεσμα. Συναρτήσεις (2)
>>> fib <function fib at 10042ed0> >>> f = fib >>> f(100) 1 1 2 3 5 8 13 21 34 55 89 Παράδειγμα
Η συνάρτηση fib που ορίσαμε δεν επιστρέφει καμία τιμή. >>> fib(0) >>> print(fib(0)) None Συναρτήσεις (3)
Μπορούμε να δημιουργούμε συναρτήσεις οι οποίες μπορούν να επιστρέφουν ένα αποτέλεσμα. Είναι πολύ εύκολο να γράψουμε την συνάρτηση fib να επιστρέφει μια λίστα αντί να εκτυπώνει την ακολουθία. Συναρτήσεις (3)
>>> 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] Παράδειγμα
Μπορούμε να γράψουμε και συναρτήσεις με μεταβλητό αριθμό arguments.Υπάρχουν 3 τρόποι και οι συνδυασμοί τους. Default Argument Values Κeyword Arguments Arbitary Argument List. Συναρτήσεις (4)
Όταν ορίζουμε μια συνάρτηση μπορούμε να έχουμε προκαθορισμένες τιμές για ένα argument. Αυτό μας βοηθάει στο ότι μπορούμε να καλέσουμε την συνάρτηση και να δώσουμε λιγότερα ορίσματα αφού υπάρχουν προκαθορισμένες τιμές. Default Argument Values
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) Παράδειγμα
Μια συνάρτηση μπορεί να κληθεί χρησιμοποιώντας keyword arguments του τύπου keyword=value. Keyword Arguments