Εδώ βλέπετε τις διαφορές μεταξύ της επιλεγμένης έκδοσης και της τρέχουσας έκδοσης της σελίδας.
Προηγούμενος έλεγχος και από τις δύο πλευρές Προηγούμενη αναθεώρηση Επόμενη αναθεώρηση | Προηγούμενη αναθεώρηση | ||
python [2009/02/24 12:12] Sairin_Lote |
python [2021/03/18 10:49] (τρέχουσα) 176.58.194.132 [Λίγα Μαθηματικά] |
||
---|---|---|---|
Γραμμή 6: | Γραμμή 6: | ||
Καταρχήν το όνομα δεν προέρχεται από το γνωστό ερπετό της οικογένειας Pythonidae αλλά από κάτι πιο χαρούμενο και προσβάσιμο, | Καταρχήν το όνομα δεν προέρχεται από το γνωστό ερπετό της οικογένειας Pythonidae αλλά από κάτι πιο χαρούμενο και προσβάσιμο, | ||
H Python πρωτοεκδόθηκε από τον Ολλανδό προγραμματιστή Guido van Rossum το 1991 και αναπτύσσεται ως ανοιχτό λογισμικό (free software) και η διαχείρισή της γίνεται από τον μη κερδοσκοπικό οργανισμό [[http:// | H Python πρωτοεκδόθηκε από τον Ολλανδό προγραμματιστή Guido van Rossum το 1991 και αναπτύσσεται ως ανοιχτό λογισμικό (free software) και η διαχείρισή της γίνεται από τον μη κερδοσκοπικό οργανισμό [[http:// | ||
+ | |||
+ | |||
+ | ======Update====== | ||
+ | Πάει αρκετός καιρός από τότε που ανανεώθηκε το συγκεκριμένο Wiki και παρόλο που δεν έχουμε (σαν forum) κάνει σημαντική βελτίωση στην Python, νομίζω ότι έχoυν γίνει καλύτερα κατανοητές κάποιες βασικες λειτουργίες της, με αποτέλεσμα ο κώδικας των προηγούμενων παραδειγμάτων να είναι παροχυμένος. Αυτό όμως δεν πάει να πει ότι είναι άχρηστος ή ότι δεν δουλεύει. Ίσα ίσα, ένα πρόβλημα που διαπιστώθηκε είναι οτι στα περισσότερα βιβλία χρησιμοποιείται πάντα ο πιο εκλεπτυσμένος τρόπος ώστε να γίνει κάτι, αφήνωντας τους αρχάριους κάπως χαμένους! Πάει όμως να πει ότι είναι σχετικά λάθος επειδή υπάρχουν καλύτερα εργαλεία στην Python για να αντιμετωπιστούν τα προβλήματα που παρουσιάστηκαν. | ||
+ | |||
+ | Επομένως, | ||
+ | |||
+ | |||
+ | |||
Γραμμή 15: | Γραμμή 24: | ||
======Τέλειωνε, | ======Τέλειωνε, | ||
- | για να προγραμματίσει κάποιος σε Python θα πρέπει αρχικά να την έχει εγκατεστημένη στον υπολογιστή του. | + | Για να προγραμματίσει κάποιος σε Python θα πρέπει αρχικά να την έχει εγκατεστημένη στον υπολογιστή του. |
Η εγκατάσταση είναι μια πάρα πολύ απλή διαδικασία, | Η εγκατάσταση είναι μια πάρα πολύ απλή διαδικασία, | ||
- | Όποιος χρησιμοποιεί Linux η εγκατάσταση είναι ακόμα πιο εύκολη, αρκεί να ανοίξει τον package manager που χρησιμοποιεί και να ψάξει (search) για την Python και έπειτα να την εγκαταστήσει. Επίσης σε πρόσφατες διανομές μπορεί η Python να είναι ήδη εγκατεστημένη στο σύστημά σας. Για να το διαπιστώσετε απλά ανοίξτε την κονσόλα σας και πληκτρολογήστε : | + | Για όποιον χρησιμοποιεί |
- | $ python | + | $ python |
και πατήστε enter. Αν η γλώσσα είναι εγκατεστημένη θα πρέπει να δείτε κάτι τέτοιο: | και πατήστε enter. Αν η γλώσσα είναι εγκατεστημένη θα πρέπει να δείτε κάτι τέτοιο: | ||
- | |||
- | Python 2.5.1 (r251: | ||
- | [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 | ||
- | Type " | ||
- | >>> | ||
- | Να σημειωθεί εδώ ότι η πιο πρόσφατη έκδοση της | + | Python 3.6.0 (default, Jan 16 2017, 12:12:55) |
+ | [GCC 6.3.1 20170109] on linux | ||
+ | Type " | ||
+ | >>> | ||
- | Όταν λοιπόν είστε έτοιμοι να γράψετε το πρόγραμμά σας θα χρειαστείτε επεξεργαστή κειμένου. Αυτός μπορεί να είναι από τα απλά Notepad και gedit ή να είναι πιο " | + | Να σημειωθεί εδώ ότι η πιο πρόσφατη έκδοση της Python πλέον είναι η 3. Tο tutorial σήμερα είναι γραμμένο για 3 και αναφέρει τις διαφορές με την 2 όπου υπάρχουν. Επειδή υπάρχουν κάποιες βασικές διαφορές (π.χ. η raw_input αντί για την input της έκδοσης 3), αν σκοπεύετε να δουλέψετε στην 2 καλό είναι να τις διαβάσετε και να τροποποιήσετε τα προγράμματα αναλόγως. |
+ | |||
+ | Όταν λοιπόν είστε έτοιμοι να γράψετε το πρόγραμμά σας θα χρειαστείτε επεξεργαστή κειμένου. Αυτός μπορεί να είναι από τα απλά Notepad και gedit ή να είναι πιο " | ||
Επειδή το να γράφεις κώδικα σε απλό κειμενογράφο δεν είναι πρακτικό, | Επειδή το να γράφεις κώδικα σε απλό κειμενογράφο δεν είναι πρακτικό, | ||
+ | |||
+ | |||
Γραμμή 41: | Γραμμή 52: | ||
Τα πράγματα στην Python είναι τόσο απλά: | Τα πράγματα στην Python είναι τόσο απλά: | ||
- | print 'Geia sou ntounia!' | + | print('Geia sou ntounia!' |
Όταν λοιπόν γράψουμε το παραπάνω στον IDLE και πατήσουμε enter στην οθόνη μας θα εμφανιστεί το παρακάτω: | Όταν λοιπόν γράψουμε το παραπάνω στον IDLE και πατήσουμε enter στην οθόνη μας θα εμφανιστεί το παρακάτω: | ||
- | Geia sou ntounia! | + | Geia sou ntounia! |
Από εδώ και πέρα ο κώδικας θα έχει τη μορφή | Από εδώ και πέρα ο κώδικας θα έχει τη μορφή | ||
- | | + | >>> |
- | Geia sou ntounia! | + | Geia sou ntounia! |
τα 3 > αποτελεί σημάδι ότι αυτή τη σειρά την **εισάγουμε εμείς** | τα 3 > αποτελεί σημάδι ότι αυτή τη σειρά την **εισάγουμε εμείς** | ||
Γραμμή 56: | Γραμμή 67: | ||
Σε αυτό το σημείο να αναφέρουμε επίσης ότι οτιδήποτε και να γράψουμε πίσω από το σύμβολο # ο υπολογιστής το αγνοεί. Ουσιαστικά το # χρησιμοποιείται για να εισάγουμε σχόλια μέσα στον κώδικα μας για να διευκολύνουν κάποιον που τον διαβάζει. | Σε αυτό το σημείο να αναφέρουμε επίσης ότι οτιδήποτε και να γράψουμε πίσω από το σύμβολο # ο υπολογιστής το αγνοεί. Ουσιαστικά το # χρησιμοποιείται για να εισάγουμε σχόλια μέσα στον κώδικα μας για να διευκολύνουν κάποιον που τον διαβάζει. | ||
- | | + | >>> |
- | Geia sou ntounia! | + | Geia sou ntounia! |
+ | |||
+ | |||
+ | |||
+ | παρατηρούμε ότι το print είναι χρωματισμένο πορτοκαλί που υποδηλώνει ότι είναι μια εντολή ενώ το 'Geia sou ntounia!' | ||
- | παρατηρούμε ότι το print είναι χρωματισμένο πορτοκαλί που υποδηλώνει ότι είναι μια εντολή ενώ το 'Geia sou ntounia!' | ||
Γραμμή 81: | Γραμμή 95: | ||
Για να δοκιμάσουμε κάπως διαφορετικά: | Για να δοκιμάσουμε κάπως διαφορετικά: | ||
- | | + | >>> |
1.5 | 1.5 | ||
>>> | >>> | ||
Γραμμή 89: | Γραμμή 103: | ||
Αχά! Ώστε έτσι δουλεύει. | Αχά! Ώστε έτσι δουλεύει. | ||
Ναι, δουλεύει γιατί πλέον η γλώσσα αντιλαμβάνεται τον αριθμό ως //float//, δηλαδή ως floating point number, δηλαδή ως πραγματικό. | Ναι, δουλεύει γιατί πλέον η γλώσσα αντιλαμβάνεται τον αριθμό ως //float//, δηλαδή ως floating point number, δηλαδή ως πραγματικό. | ||
+ | |||
+ | Ευτυχώς στην έκδοση 3 δεν υπάρχει αυτό το θέμα. Η διαίρεση δίνει το σωστό αποτέλεσμα όπως κι αν είναι γραμμένοι οι αριθμοί: | ||
+ | >>> | ||
+ | 0.6666666666666666 | ||
Μπορούμε επίσης να βάλουμε μεταβλητές | Μπορούμε επίσης να βάλουμε μεταβλητές | ||
Γραμμή 103: | Γραμμή 121: | ||
0.41666666666666669 | 0.41666666666666669 | ||
Όπως σκεφτήκατε θα δούλευε και αν μετατρέπαμε μόνο τον έναν από τους δυο σε //float//. Καλό είναι όμως σε ένα πρόγραμμα να τους μετατρέπουμε όλους γιατί πάλι θα είχαμε πρόβλημα αν χρειαζόταν να γίνει η διαίρεση y/100. Επίσης η μετατροπή των μεταβλητών σε //float// μας εξοικονομεί χρόνο (δεν χρειάζεται κάθε φορά να γράφουμε 5.0) αλλά και προσφέρει λειτουργικότητα στον χρήστη ο οποίος δεν ξέρει πως λειτουργεί ο μηχανισμός της Python. | Όπως σκεφτήκατε θα δούλευε και αν μετατρέπαμε μόνο τον έναν από τους δυο σε //float//. Καλό είναι όμως σε ένα πρόγραμμα να τους μετατρέπουμε όλους γιατί πάλι θα είχαμε πρόβλημα αν χρειαζόταν να γίνει η διαίρεση y/100. Επίσης η μετατροπή των μεταβλητών σε //float// μας εξοικονομεί χρόνο (δεν χρειάζεται κάθε φορά να γράφουμε 5.0) αλλά και προσφέρει λειτουργικότητα στον χρήστη ο οποίος δεν ξέρει πως λειτουργεί ο μηχανισμός της Python. | ||
+ | |||
+ | Όπως είπαμε και πριν στην Python3 δεν έχουμε θέμα: | ||
+ | >>> | ||
+ | >>> | ||
+ | >>> | ||
+ | 60 | ||
+ | >>> | ||
+ | 0.4166666666666669 | ||
σημείωση: | σημείωση: | ||
Γραμμή 178: | Γραμμή 204: | ||
**e (math.e)**. | **e (math.e)**. | ||
+ | |||
+ | |||
+ | |||
+ | |||
======Το πρώτο αληθινό μας πρόγραμμα!====== | ======Το πρώτο αληθινό μας πρόγραμμα!====== | ||
Γραμμή 190: | Γραμμή 220: | ||
//Φωνή από το πουθενά// | //Φωνή από το πουθενά// | ||
- | |||
import math | import math | ||
- | xa=raw_input('Dose mou to Xa:' | + | xa=input('Dose mou to Xa:' |
xa=float(xa) | xa=float(xa) | ||
- | ya=raw_input('Dose mou to Ya:' | + | ya=input('Dose mou to Ya:' |
ya=float(ya) | ya=float(ya) | ||
- | sab=raw_input('Dose mou tin apostasi AB:') #eisagoume to Sab | + | sab=input('Dose mou tin apostasi AB:') #eisagoume to Sab |
sab=float(sab) | sab=float(sab) | ||
- | aab=raw_input('Dose mou tin gonia diey8insis ab -se grad-:' | + | aab=input('Dose mou tin gonia diey8insis ab -se grad-:' |
aab=float(aab) | aab=float(aab) | ||
aabr=math.pi*aab/ | aabr=math.pi*aab/ | ||
xb= xa+sab*math.sin(aabr) # | xb= xa+sab*math.sin(aabr) # | ||
yb= ya+sab*math.cos(aabr) # | yb= ya+sab*math.cos(aabr) # | ||
- | print 'To simeio B exei syntetagmenes Xb:', xb, ', Yb:' , yb # | + | print('To simeio B exei syntetagmenes Xb:', xb, ', Yb:' , yb) #epistrofi stin o8oni twn timwn Xb, Yb |
Και αυτό ήταν! | Και αυτό ήταν! | ||
Γραμμή 212: | Γραμμή 241: | ||
import math | import math | ||
- | xa, ya=raw_input('Dose mou to Xa kai Ya -xwrismena me komma-:' | + | xa, ya=input('Dose mou to Xa kai Ya -xwrismena me komma-:' |
xa=float(xa) | xa=float(xa) | ||
ya=float(ya) | ya=float(ya) | ||
- | sab, aab=raw_input('Dose mou tin apostasi AB kai tin gwnia diey8insis aAb (se grad) -xwrismenes me komma -:' | + | sab, aab=input('Dose mou tin apostasi AB kai tin gwnia diey8insis aAb (se grad) -xwrismenes me komma -:' |
sab=float(sab) | sab=float(sab) | ||
aab=float(aab) | aab=float(aab) | ||
Γραμμή 221: | Γραμμή 250: | ||
xb= xa+sab*math.sin(aabr) # | xb= xa+sab*math.sin(aabr) # | ||
yb= ya+sab*math.cos(aabr) # | yb= ya+sab*math.cos(aabr) # | ||
- | print 'To simeio B exei syntetagmenes Xb: %.3f, Yb: %.3f' %(xb, yb) # | + | print('To simeio B exei syntetagmenes Xb: %.3f, Yb: %.3f' %(xb, yb)) # |
- | Τι έχουμε κάνει εδω; Ουσιαστικά εισάγουμε δυο μεταβλητές με μια raw_input, " | + | Τι έχουμε κάνει εδω; Ουσιαστικά εισάγουμε δυο μεταβλητές με μια |
Με το σύμβολο % ο υπολογιστής " | Με το σύμβολο % ο υπολογιστής " | ||
+ | |||
+ | Δυστυχώς μέχρι τώρα η input στην Python2 δεν έχει αποκτήσει την split της οπότε πρέπει να χρησιμοποιήσουμε την raw_input με παρόμοιο τρόπο: | ||
+ | |||
+ | import math | ||
+ | xa, ya=raw_input(' | ||
+ | xa=float(xa) | ||
+ | ya=float(ya) | ||
+ | sab, aab=raw_input(' | ||
+ | sab=float(sab) | ||
+ | aab=float(aab) | ||
+ | aabr=math.pi*aab/ | ||
+ | xb= xa+sab*math.sin(aabr) # | ||
+ | yb= ya+sab*math.cos(aabr) # | ||
+ | print(' | ||
+ | |||
Γραμμή 244: | Γραμμή 287: | ||
Απλό ε? Για να το δούμε και σε πραγματικό κώδικα: | Απλό ε? Για να το δούμε και σε πραγματικό κώδικα: | ||
- | | + | |
+ | | ||
if password.endswith(' | if password.endswith(' | ||
- | print ' | + | print(' |
else: | else: | ||
- | print' | + | print('You are not welcome to enter our Halls') |
Παρατηρείστε ότι το print είναι πιο μέσα από το if. Αυτό σημαίνει ότι θα εκτελεστεί μόνο όταν ο χρήστης εισάγει το σωστό σύνθημα. Αλλιώς είναι σαν να μην υπάρχει. | Παρατηρείστε ότι το print είναι πιο μέσα από το if. Αυτό σημαίνει ότι θα εκτελεστεί μόνο όταν ο χρήστης εισάγει το σωστό σύνθημα. Αλλιώς είναι σαν να μην υπάρχει. | ||
Φυσικά μπορούμε να βάλουμε όσα if θέλουμε, | Φυσικά μπορούμε να βάλουμε όσα if θέλουμε, | ||
+ | |||
+ | (Στην Python2 πρέπει να κάνουμε raw_input με παρόμοιο τρόπο: | ||
+ | |||
+ | password=raw_input(' | ||
+ | |||
+ | και ίδιο το υπόλοιπο παράδειγμα) | ||
Γραμμή 268: | Γραμμή 318: | ||
Για να δούμε πως θα δούλευε το παραπάνω πρόγραμμα με την while: | Για να δούμε πως θα δούλευε το παραπάνω πρόγραμμα με την while: | ||
while 1: | while 1: | ||
- | password=raw_input(' | + | password=input(' |
if password.endswith(' | if password.endswith(' | ||
- | print ' | + | print(' |
break | break | ||
else: | else: | ||
- | print 'You are not welcome to enter our Halls' | + | print('You are not welcome to enter our Halls') |
Τα καινούρια στοιχεία εδώ είναι το while και το break. | Τα καινούρια στοιχεία εδώ είναι το while και το break. | ||
Γραμμή 285: | Γραμμή 335: | ||
x=1 | x=1 | ||
while x <= 3: | while x <= 3: | ||
- | password=raw_input(' | + | password=input(' |
if password.endswith(' | if password.endswith(' | ||
- | print ' | + | print(' |
break | break | ||
else: | else: | ||
- | print 'The secret word is wrong. Please try again' | + | print('The secret word is wrong. Please try again') |
x=x+1 | x=x+1 | ||
else: | else: | ||
print 'You failed three times. The gates are closed forever.' | print 'You failed three times. The gates are closed forever.' | ||
+ | |||
+ | ( Όσοι επιμένετε σε Python2 μην ξεχάσετε την χρήση της raw_input αντί της input. ) | ||
**Άραγε μετά από αυτά, μπορείτε να γράψετε ενα πρόγραμμα που να επιλύει το 2ο Θεμελιώδες Πρόβλημα; | **Άραγε μετά από αυτά, μπορείτε να γράψετε ενα πρόγραμμα που να επιλύει το 2ο Θεμελιώδες Πρόβλημα; | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
Γραμμή 322: | Γραμμή 364: | ||
Αν δεν είναι όμως; Αν διαβάσετε πιο προσεκτικά το παραπάνω σφάλμα θα δείτε ότι στην τελευταία του γραμμή εμφανίζει το λόγο του σφάλματος : ZeroDivisionError , δηλαδη διαιρέσαμε με το 0. | Αν δεν είναι όμως; Αν διαβάσετε πιο προσεκτικά το παραπάνω σφάλμα θα δείτε ότι στην τελευταία του γραμμή εμφανίζει το λόγο του σφάλματος : ZeroDivisionError , δηλαδη διαιρέσαμε με το 0. | ||
- | Υπάρχουν διάφοροι τύποι σφαλμάτων. Για παράδειγμα αν στο πρόγραμμα επίλυσης του 1ου θεμελιώδους Προβλήματος, | + | Υπάρχουν διάφοροι τύποι σφαλμάτων. Για παράδειγμα αν στο πρόγραμμα επίλυσης του 1ου θεμελιώδους Προβλήματος, |
Dose mou to Xa kai Ya -xwrismena me komma kai keno-:32 132 | Dose mou to Xa kai Ya -xwrismena me komma kai keno-:32 132 | ||
Traceback (most recent call last): | Traceback (most recent call last): | ||
File "/ | File "/ | ||
- | xa, xb=raw_input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' | + | xa, xb=input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' |
ValueError: need more than 1 value to unpack | ValueError: need more than 1 value to unpack | ||
Γραμμή 335: | Γραμμή 377: | ||
try: | try: | ||
- | xa, ya=raw_input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' | + | xa, ya=input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' |
except ValueError: | except ValueError: | ||
- | print ' | + | print(' |
raise | raise | ||
Γραμμή 352: | Γραμμή 394: | ||
while 1: | while 1: | ||
try: | try: | ||
- | xa, ya=raw_input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' | + | xa, ya=input('Dose mou to Xa kai Ya -xwrismena me komma kai keno-:' |
except ValueError: | except ValueError: | ||
- | print ' | + | print(' |
else: | else: | ||
break | break | ||
+ | ======H Python όπως πρέπει να είναι!====== | ||
+ | |||
+ | |||
+ | Αρχίζοντας πρέπει να ξέρετε 3 βασικά πράγματα για την Python και καλο είναι να μην τα ξεχάσετε ποτέ! | ||
+ | |||
+ | 0) οι λίστες (lists) είναι ένα απο τα πιο ισχυρά εργαλεία της python | ||
+ | 1) βολεύει να γράφουμε χρησιμοποιώντας συναρτήσεις (functions) | ||
+ | 2) τα πάντα στην python είναι αντικείμενα (objects) | ||
+ | |||
+ | |||
+ | |||
+ | =====Lists===== | ||
+ | |||
+ | Η λίστα είναι μια από τις τρεις δομές δεδομένων (data structures) της Python μαζί με τα dictionaries και τα tuples. Πιο σημαντικό είναι ότι η λίστα είναι object (αντικείμενο) και ως object έχει ιδιότητες! Τα στοιχεία της λίστας βρίσκονται μέσα σε [] και είναι χωρισμένα με κόμμα. Στοιχεία μιας λίστας μπορεί να είναι αριθμοί, | ||
+ | |||
+ | Να μια λίστα: | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 2, 3, ' | ||
+ | |||
+ | >>> | ||
+ | 1 | ||
+ | |||
+ | >>> | ||
+ | 3 | ||
+ | |||
+ | >>> | ||
+ | [5, 4, 3] # επιστρέφει το τελευταίο στοιχείο της λίστας! | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | 8 | ||
+ | |||
+ | >>> | ||
+ | Traceback (most recent call last): | ||
+ | File "< | ||
+ | IndexError: list index out of range | ||
+ | |||
+ | Όπως καταλάβατε, | ||
+ | |||
+ | |||
+ | |||
+ | Ας ξαναφτιάξουμε μια πιο ορθόδοξη λίστα, σαν αυτές που θα χρησιμοποιείται συνήθως, | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8, 4, 9] | ||
+ | |||
+ | Τι άλλο ενδιαφέρον μπορούμε να κάνουμε με τις λίστες; | ||
+ | |||
+ | >>> | ||
+ | [1, 6, 3] | ||
+ | |||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8] | ||
+ | |||
+ | >>> | ||
+ | [4, 9] | ||
+ | |||
+ | >>> | ||
+ | [3, 8] | ||
+ | |||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8, 4, 9] # όλα τα στοιχεία | ||
+ | |||
+ | >>> | ||
+ | [1, 3, 3] | ||
+ | |||
+ | >>> | ||
+ | [8, 4] | ||
+ | |||
+ | List Methods | ||
+ | |||
+ | Μεθόδοι είναι διάφορες " | ||
+ | |||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8, 4, 9] | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8, 4, 9, 5] | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | >>> | ||
+ | [1, 6, 3, 8, 3, 8, 4, 9, 5, 3, 2, 6] | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 6, 10, 3, 8, 3, 8, 4, 9, 5, 3, 2, 6] | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 6, 3, 3, 8, 4, 9, 5, 3, 2, 6] | ||
+ | |||
+ | >>> | ||
+ | 6 | ||
+ | |||
+ | >>> | ||
+ | 3 | ||
+ | |||
+ | >>> | ||
+ | 8 | ||
+ | |||
+ | >>> | ||
+ | 2 | ||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [1, 2, 3, 3, 4, 5, 6, 8, 8, 9, 10] | ||
+ | |||
+ | |||
+ | >>> | ||
+ | >>> | ||
+ | [10, 9, 8, 8, 6, 5, 4, 3, 3, 2, 1] | ||
+ | |||
+ | |||
+ | =====Συναρτήσεις===== | ||
+ | |||
+ | Η ιδέα των συναρτήσεων είναι ιδιαίτερα απλή και εύχρηστη. Μια συνάρτηση είναι ενα block, το οποίο όποτε και όπου το καλείς κάνει πάντα την ίδια δουλειά. Για παράδειγμα, | ||
+ | |||
+ | Γράφω εδω έναν ψευδοκώδικα για να δείτε τι εννοώ | ||
+ | |||
+ | # | ||
+ | Δώσε συντεταγμένες σημείων | ||
+ | Υπολογισμός ΔX/ΔΥ | ||
+ | Διερεύνηση | ||
+ | Τελική Γωνία | ||
+ | |||
+ | Αυτό θα πρέπει να το κάνετε κάθε φορά που θέλετε να υπολογίσετε μια γωνία διεύθυνσης. Αν όμως είχατε κάνει μια συνάρτηση θα σασ λυνόταν τα χέρια: | ||
+ | |||
+ | def ΥπολογισμοςΓωνίαςΔιεύθυνσης(x1, | ||
+ | Υπολογισμός ΔΧ/ΔΥ | ||
+ | Διερεύνηση | ||
+ | Τελική Γωνία | ||
+ | |||
+ | Έτσι, όποτε θέλετε να υπολογίσετε μια ακόμη γωνία διεύθυνσης, | ||
+ | |||
+ | Ορισμός της Συνάρτησης | ||
+ | |||
+ | Όπως είδαμε παραπάνω τα βασικά μέρη για να οριστεί μια συνάρτηση είναι το όνομα της και η λειτουργία της. Τίποτα άλλο δεν είναι υποχρεωτικό. Να η πιο απλή συνάρτηση. Λέγεται simple (to def -define- μπροστά είναι υποχρεωτικό κατα τον ορισμό της) και όταν εκτελέιται..δεν κάνει τίποτα! | ||
+ | |||
+ | def simple(): | ||
+ | pass | ||
+ | |||
+ | Οι πραγματικές συναρτήσεις είναι λίγο πιο πολύπλοκες από αυτήν. | ||
+ | |||
+ | def freefall(t, g=9.81): | ||
+ | " | ||
+ | S=0.5*g*pow(t, | ||
+ | print(S) | ||
+ | |||
+ | Ας αναλύσουμε την λειτουργία της συνάρτησης: | ||
+ | |||
+ | Στην γραμμή 1 ορίζεται η συνάρτηση freefall(), η οποία παίρνει ως μεταβλητές το t (χρόνος) και το g (επιταχυνση της βαρύτητας). Επειδή στα απλά προβλήματα το g έχει συνήθως την τιμή 9,81 μπορείτε να το αγνοήσετε και να δηλώσετε μόνο τον χρόνο και η Python θα δωσει την τιμή 9,81. Αν όμως θέλετε να κάνετε ένα πείραμα στο φεγγάρι, | ||
+ | |||
+ | Η 2η γραμμή ονομάζεται docstring και περιγράφει με λίγα λόγια την λειτουργία της συνάρτησης. Η χρήση της είναι προεραιτική, | ||
+ | |||
+ | Η 3η γραμμή, | ||
+ | |||
+ | Μόλις εκτλέσετε το πρόγραμμα, | ||
+ | |||
+ | >>> | ||
+ | 78.480000000000004 | ||
+ | |||
+ | Το οποίο επιστρέφει το ύψος στο οποίο βρισκόταν ένα αντικείμενο, | ||
+ | |||
+ | >>> | ||
+ | 56.0 | ||
+ | |||
+ | Το οποίο σου επιστρέφει το ύψος στο οποίο βρισκόταν ένα αντικείμενο, | ||
+ | |||
+ | Θυμάστε το docstring? Μπορείτε να το δείτε ακόμα και στο runtime, γράφοντας: | ||
+ | |||
+ | >>> | ||
+ | Ypologizei to ypsos ptwsis enos antikeimenou se eley8eri ptwsi, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | =====Βιβλιοθήκες===== | ||
+ | |||
+ | Αυτό για το οποίο είναι φημισμένη η Python, είναι η πληθώρα των βιβλιοθηκών της. Πέρα απ' | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | και πολλές πολλές άλλες :-) | ||
+ | |||
+ | Επίσης, | ||
Γραμμή 366: | Γραμμή 613: | ||
Με όλα όσα αναφέρθηκαν παραπάνω, | Με όλα όσα αναφέρθηκαν παραπάνω, | ||
- | Επίσης να σημειωθεί ότι αυτό το wiki είναι // | + | Επίσης να σημειωθεί ότι αυτό το wiki είναι // |
Επιπρόσθετα θα σας ενθαρρύναμε ότι πρόγραμμα γράφετε να είναι ανοιχτό και ελεύθερο προς όλους. Να μπορεί δηλαδή ο καθένας να διαβάσει τον κώδικα του και να τον τροποποιήσει ανάλογα με τις ανάγκες του. | Επιπρόσθετα θα σας ενθαρρύναμε ότι πρόγραμμα γράφετε να είναι ανοιχτό και ελεύθερο προς όλους. Να μπορεί δηλαδή ο καθένας να διαβάσει τον κώδικα του και να τον τροποποιήσει ανάλογα με τις ανάγκες του. |