(Translated by https://www.hiragana.jp/)
Python - Βικιπαίδεια Μετάβαση σしぐまτたうοおみくろん περιεχόμενο

Python

Από τたうηいーた Βικιπαίδεια, τたうηいーたνにゅー ελεύθερη εγκυκλοπαίδεια
Τたうοおみくろん λογότυπο της Python

Ηいーた Python είναι διερμηνευόμενη (interpreted), γενικού σκοπού (general-purpose) κかっぱαあるふぁιいおた υψηλού επιπέδου, γλώσσα προγραμματισμού.[1][2][3]

Ανήκει στις γλώσσες προστακτικού προγραμματισμού (Imperative programming) κかっぱαあるふぁιいおた υποστηρίζει τόσο τたうοおみくろん διαδικαστικό (procedural programming) όσο κかっぱαあるふぁιいおた τたうοおみくろん αντικειμενοστρεφές (object-oriented programming) προγραμματιστικό υπόδειγμα (programming paradigm).

Είναι δυναμική γλώσσα προγραμματισμού (dynamically typed) κかっぱαあるふぁιいおた υποστηρίζει συλλογή απορριμμάτων (garbage collection ή GC).

Δημιουργήθηκε από τたうοおみくろんνにゅー Ολλανδό Γκίντο βべーたαあるふぁνにゅー Ρόσσουμ (Guido van Rossum) σしぐまτたうοおみくろん ερευνητικό κέντρο Centrum Wiskunde & Informatica (CWI) τたうοおみくろん 1989[4] κかっぱαあるふぁιいおた κυκλοφόρησε γがんまιいおたαあるふぁ πρώτη φορά τたうοおみくろん 1991.[5][4]

Οおみくろん κύριος στόχος της είναι ηいーた αναγνωσιμότητα τたうοおみくろんυうぷしろん κώδικά της κかっぱαあるふぁιいおた ηいーた ευκολία χρήσης της. Τたうοおみくろん συντακτικό της επιτρέπει στους προγραμματιστές νにゅーαあるふぁ εκφράσουν έννοιες σしぐまεいぷしろん λιγότερες γραμμές κώδικα από ό,τたうιいおた θしーたαあるふぁ ήταν δυνατόν σしぐまεいぷしろん γλώσσες όπως ηいーた C++ ή ηいーた Java.[6][7][3] Διακρίνεται λόγω τたうοおみくろんυうぷしろん ότι έχει πολλές βιβλιοθήκες πぱいοおみくろんυうぷしろん διευκολύνουν ιδιαίτερα αρκετές συνηθισμένες εργασίες κかっぱαあるふぁιいおた γがんまιいおたαあるふぁ τたうηいーたνにゅー ταχύτητα εκμάθησης της. Μειονεκτεί σしぐまτたうοおみくろん ότι επειδή είναι διερμηνευόμενη είναι πぱいιいおたοおみくろん αργή από τις μεταγλωττιζόμενες (compiled) γλώσσες όπως ηいーた C κかっぱαあるふぁιいおた ηいーた C++. Γがんまιいおたαあるふぁ αυτόν τたうοおみくろんνにゅー λόγο δでるたεいぷしろんνにゅー είναι κατάλληλη γがんまιいおたαあるふぁ γραφή λειτουργικών συστημάτων.[8]

Οおみくろんιいおた διερμηνευτές της Python είναι διαθέσιμοι γがんまιいおたαあるふぁ εγκατάσταση σしぐまεいぷしろん πολλά λειτουργικά συστήματα, επιτρέποντας σしぐまτたうηいーたνにゅー Python τたうηいーたνにゅー εκτέλεση κώδικα σしぐまεいぷしろん ευρεία γκάμα συστημάτων. Χρησιμοποιώντας εργαλεία τρίτων, όπως τたうοおみくろん Py2exe ή τたうοおみくろん Pyinstaller,[9] οおみくろん κώδικας της Python μπορεί νにゅーαあるふぁ πακεταριστεί σしぐまεいぷしろん αυτόνομα εκτελέσιμα προγράμματα γがんまιいおたαあるふぁ μερικά από τたうαあるふぁ πぱいιいおたοおみくろん δημοφιλή λειτουργικά συστήματα, επιτρέποντας τたうηいーた διανομή τたうοおみくろんυうぷしろん βασισμένου σしぐまεいぷしろん Python λογισμικού γがんまιいおたαあるふぁ χρήση σしぐまεいぷしろん αυτά τたうαあるふぁ περιβάλλοντα χωρίς νにゅーαあるふぁ απαιτείται εγκατάσταση τたうοおみくろんυうぷしろん διερμηνευτή της Python.

Ηいーた Python αναπτύσσεται ως ανοιχτό λογισμικό (open source) κかっぱαあるふぁιいおた ηいーた διαχείρισή της γίνεται από τたうοおみくろんνにゅー μみゅーηいーた κερδοσκοπικό οργανισμό Python Software Foundation.[8] Οおみくろん κώδικας διανέμεται μみゅーεいぷしろん τたうηいーたνにゅー άδεια Python Software Foundation License ηいーた οποία είναι συμβατή μみゅーεいぷしろん τたうηいーたνにゅー GPL. Τたうοおみくろん όνομα της γλώσσας προέρχεται από τたうηいーたνにゅー ομάδα τたうωおめがνにゅー Άγγλων κωμικών Μόντυ Πάιθον κかっぱαあるふぁιいおた δでるたεいぷしろんνにゅー έχει καμιά σχέση μみゅーεいぷしろん τたうοおみくろん φίδι πύθωνα, παρότι τたうοおみくろん λογότυπό της παραπέμπει σしぐまεいぷしろん κάτι τέτοιο.[10][11][4]

Ηいーた Python δημιουργήθηκε από τたうοおみくろんνにゅー Γκίντο βべーたαあるふぁνにゅー Ρόσσουμ σしぐまτたうοおみくろん ερευνητικό κέντρο Centrum Wiskunde & Informatica (CWI) τたうοおみくろん 1989.[4] Αρχικά, ηいーた Python ήταν γλώσσα σεναρίων πぱいοおみくろんυうぷしろん χρησιμοποιήθηκε σしぐまτたうοおみくろん κατανεμημένο λειτουργικό σύστημα Amoeba,[4] ικανή κかっぱαあるふぁιいおた γがんまιいおたαあるふぁ κλήσεις συστήματος. Θεωρείται διάδοχος της γλώσσας προγραμματισμού ABC, μみゅーιいおたαあるふぁ κかっぱαあるふぁιいおた αυτή υπήρξε ηいーた βασική πηγή έμπνευσης γがんまιいおたαあるふぁ τたうοおみくろんνにゅー Γκίντο βべーたαあるふぁνにゅー Ρόσσουμ.[4]

Ηいーた Python 2.0 κυκλοφόρησε στις 16 Οκτωβρίου τたうοおみくろんυうぷしろん 2000. Στις 3 Δεκεμβρίου 2008 κυκλοφόρησε ηいーた έκδοση 3.0 (γνωστή κかっぱαあるふぁιいおた ως py3k ή python 3000). Πολλά από τたうαあるふぁ καινούργια χαρακτηριστικά αυτής της έκδοσης έχουν μεταφερθεί στις εκδόσεις 2.6 και 2.7 που είναι προς τたうαあるふぁ πίσω συμβατές.

Ηいーた Python 3.0 είναι ιστορικά ηいーた πρώτη γλώσσα προγραμματισμού πぱいοおみくろんυうぷしろん σπάει τたうηいーたνにゅー προς τたうαあるふぁ πίσω συμβατότητα μみゅーεいぷしろん προηγούμενες εκδόσεις ώστε νにゅーαあるふぁ διορθωθούν κάποια λάθη πぱいοおみくろんυうぷしろん υπήρχαν σしぐまεいぷしろん προγενέστερες εκδόσεις κかっぱαあるふぁιいおた νにゅーαあるふぁ καταστεί ακόμα πぱいιいおたοおみくろん σαφής οおみくろん απλός τρόπος μみゅーεいぷしろん τたうοおみくろんνにゅー οποίο μπορούν νにゅーαあるふぁ γίνουν κάποια πράγματα.

Ηいーた Python 3.0 συνοδεύεται μみゅーεいぷしろん τたうοおみくろん πρόγραμμα 2to3.py, πぱいοおみくろんυうぷしろん επιτρέπει τたうηいーたνにゅー μετατροπή κώδικα της έκδοσης 2.0 σε 3.0.[12][13]

Οおみくろん Γκίντο βべーたαあるふぁνにゅー Ρόσσουμ, πρωτοστατούσε σしぐまτたうηいーたνにゅー κοινότητα της Python μέχρι τたうοおみくろんνにゅー Ιούλιο τたうοおみくろんυうぷしろん 2018, οπότε κかっぱαあるふぁιいおた παραιτήθηκε,[14][15] γがんまιいおたαあるふぁ νにゅーαあるふぁ συνεχίσει μόνο ως μέλος τたうοおみくろんυうぷしろん Διοικητικού Συμβουλίου.

Ηいーた πぱいιいおたοおみくろん πρόσφατη έκδοση είναι ηいーた 3.13 κかっぱαあるふぁιいおた δημοσιεύτηκε στις 8 Μαΐου 2024

Γがんまιいおたαあるふぁ νにゅーαあるふぁ εκτελεστούν διαδραστικά (interactively) μεμονωμένες εντολές ή προγράμματα είναι απαραίτητη ηいーた εγκατάσταση τたうοおみくろんυうぷしろん διερμηνευτή της Python, οおみくろん οποίος είναι ελεύθερα διαθέσιμος γがんまιいおたαあるふぁ «κατέβασμα» (download) από τたうοおみくろんνにゅー επίσημο ιστότοπό της (www.python.org). Γがんまιいおたαあるふぁ Microsoft Windows υπάρχουν εκδόσεις τたうωおめがνにゅー 32 ή 64 bits. Σしぐまτたうαあるふぁ λειτουργικά συστήματα Linux κかっぱαあるふぁιいおた Mac OS X συνηθίζεται νにゅーαあるふぁ είναι προεγκατεστημένη, πιθανότατα όμως νにゅーαあるふぁ είναι μみゅーιいおたαあるふぁ παλαιότερη έκδοσή της.[16]

Κύριο λήμμα: IDLE (Python)

Γがんまιいおたαあるふぁ τたうηいーた συγγραφή προγραμμάτων είναι απαραίτητος ένας κειμενογράφος ή ακόμα καλύτερα ένα ολοκληρωμένο περιβάλλον ανάπτυξης (Integrated Development Environment - IDE), τたうοおみくろん οποίο είναι ένα ειδικό λογισμικό γがんまιいおたαあるふぁ τたうηいーたνにゅー ανάπτυξη εφαρμογών. Ηいーた Python έρχεται μαζί μみゅーεいぷしろん ένα εύχρηστο κかっぱαあるふぁιいおた απλό περιβάλλον ανάπτυξης μみゅーεいぷしろん τたうηいーたνにゅー ονομασία ΙいおたDLE. Τたうαあるふぁ αρχικά τたうοおみくろんυうぷしろん προέρχονται από τις λέξεις Interactive DeveLopment Environment κかっぱαあるふぁιいおた είναι γραμμένο σしぐまεいぷしろん Python από τたうοおみくろんνにゅー Γκίντο βべーたαあるふぁνにゅー Ρόσσουμ. Χρησιμοποιεί τたうηいーた βιβλιοθήκη γραφικών Tkinter, οπότε μπορεί νにゅーαあるふぁ εκτελεσθεί σしぐまεいぷしろん περιβάλλον Linux, Windows κかっぱαあるふぁιいおた Mac OS X. Τたうοおみくろん IDLE μας δίνει τたうηいーた δυνατότητα νにゅーαあるふぁ χρησιμοποιήσουμε διαδραστικά τたうοおみくろんνにゅー διερμηνευτή της γλώσσας, νにゅーαあるふぁ γράψουμε κかっぱαあるふぁιいおた νにゅーαあるふぁ επεξεργαστούμε προγράμματα, νにゅーαあるふぁ τたうαあるふぁ αποθηκεύσουμε σしぐまεいぷしろん αρχεία, νにゅーαあるふぁ τたうαあるふぁ εκτελέσουμε, νにゅーαあるふぁ κάνουμε αποσφαλμάτωση (debugging).[17]

Δομή κかっぱαあるふぁιいおた σύνταξη

[Επεξεργασία | επεξεργασία κώδικα]

Ηいーた γλώσσα χρησιμοποιεί μεταγλωττιστή (compiler) γがんまιいおたαあるふぁ τたうηいーたνにゅー δημιουργία τたうοおみくろんυうぷしろん εκτελέσιμου κώδικα κかっぱαあるふぁιいおた σχετίζεται μみゅーεいぷしろん τις γλώσσες προγραμματισμού Tcl, Perl, Scheme, Java κかっぱαあるふぁιいおた Ruby, καθώς κかっぱαあるふぁιいおた μみゅーεいぷしろん τたうηいーたνにゅー ABC ηいーた οποία υπήρξε ηいーた αρχική πηγή έμπνευσης γがんまιいおたαあるふぁ τたうηいーた δημιουργία της.

Ονοματοδοσία μεταβλητών

[Επεξεργασία | επεξεργασία κώδικα]

Τたうαあるふぁ ονόματα πぱいοおみくろんυうぷしろん λαμβάνουν οおみくろんιいおた μεταβλητές υπόκεινται στους εξής κανόνες:[18][19][20]

  • Είναι λέξεις πぱいοおみくろんυうぷしろん αποτελούνται από αλφαριθμητικούς χαρακτήρες (γράμματα κかっぱαあるふぁιいおた αριθμούς) κかっぱαあるふぁιいおた τたうηいーたνにゅー κάτω παύλα (underscore, "_"). Μπορεί νにゅーαあるふぁ αρχίζει μみゅーεいぷしろん αλφαβητικό χαρακτήρα ή κάτω παύλα (_).
  • Δでるたεいぷしろんνにゅー επιτρέπεται νにゅーαあるふぁ αρχίζει μみゅーεいぷしろん αριθμό (πぱい.χかい. var4_1 είναι σωστό, αλλά τたうοおみくろん 4var_1 είναι λάθος).
  • Υπάρχει διάκριση πεζών κかっぱαあるふぁιいおた κεφαλαίων γραμμάτων (case sensitivity), οπότε κかっぱαあるふぁιいおた οおみくろんιいおた μεταβλητές διαφοροποιούνται λόγω πεζών ή κεφαλαίων (πぱい.χかい. άλλη ηいーた μεταβλητή Var κかっぱαあるふぁιいおた άλλη ηいーた var).
  • Δでるたεいぷしろんνにゅー επιτρέπονται δεσμευμένες λέξεις (λέξεις-κλειδιά, keywords), δηλαδή λέξεις μみゅーεいぷしろん ιδιαίτερη σημασία (idetifiers), όπως print, type, False, float, None, κかっぱλらむだπぱい.[19] Ηいーた Python έχει 33 λέξεις-κλειδιά.[21]
  • Μπορούν νにゅーαあるふぁ χρησιμοποιηθούν κかっぱαあるふぁιいおた ελληνικά ή άλλης γλώσσας γράμματα, αλλά δでるたεいぷしろんνにゅー συνίσταται γιατί δημιουργείται δυσανάγνωστος κώδικας.[22]

Οおみくろんιいおた τύποι δεδομένων της Python διακρίνονται στους αρχέγονους (primitive data type), στις πぱいιいおたοおみくろん σύνθετες δομές δεδομένων (λίστες, πλειάδες, σύνολα, λεξικά) κかっぱαあるふぁιいおた, λόγω τたうωおめがνにゅー αντικειμενοστρεφών δυνατοτήτων της, στις κλάσεις (classes). Λόγω τたうοおみくろんυうぷしろん ότι ηいーた Python είναι δυναμική γλώσσα δでるたεいぷしろんνにゅー δηλώνονται οおみくろんιいおた τύποι τたうωおめがνにゅー μεταβλητών πぱいρろーιいおたνにゅー χρησιμοποιηθούν. Οおみくろん τύπος πぱいοおみくろんυうぷしろん τους αποδίδεται εξαρτάται από τたうηいーたνにゅー τιμή πぱいοおみくろんυうぷしろん θしーたαあるふぁ πάρουν κατά τたうηいーたνにゅー διάρκεια της εκτέλεσης τたうοおみくろんυうぷしろん προγράμματος. Όταν χρησιμοποιηθεί (πぱい.χかい. σしぐまεいぷしろん έκφραση ή συνάρτηση) πρέπει νにゅーαあるふぁ έχει πάρει τιμή γιατί οおみくろん διερμηνευτής (interpreter) δίνει λάθος πぱいοおみくろんυうぷしろん τたうοおみくろん ονομάζει NameError. Γがんまιいおたαあるふぁ αυτόν τたうοおみくろんνにゅー λόγο ηいーた Python υποστηρίζει τたうοおみくろんνにゅー ιδιαίτερο τύπο NoneType (βべーたλらむだ. παρακάτω).[19]

Αρχέγονοι (primitive) τύποι δεδομένων

[Επεξεργασία | επεξεργασία κώδικα]

Οおみくろんιいおた αρχέγονοι τύποι είναι:[19][20]

  • int (ακέραιος). Σしぐまτたうηいーたνにゅー Python οおみくろんιいおた ακέραιοι μπορούν νにゅーαあるふぁ είναι οσοδήποτε μεγάλοι.[23]
  • float (κινητής υποδιαστολής)
  • str(συμβολοσειρά ή string). Είναι ακολουθία χαρακτήρων πぱいοおみくろんυうぷしろん περικλείονται από μονά ή διπλά εισαγωγικά.[18] Σしぐまεいぷしろん ειδικές περιπτώσεις μπορεί νにゅーαあるふぁ γίνει χρήση τριπλών εισαγωγικών (μονών :''' ή διπλών: """).[20]
  • bool. Οおみくろん λογικός τύπος (Boolean) μεταβλητής μみゅーεいぷしろん τιμές True ή False.[24][25]
  • NoneType . Αυτός οおみくろん τύπος μεταβλητής παίρνει τたうηいーたνにゅー τιμή None μみゅーεいぷしろん ανάθεση (assignment, = None) κかっぱαあるふぁιいおた αντιμετωπίζεται, σしぐまτたうοおみくろんνにゅー σχεδιασμό τたうοおみくろんυうぷしろん προγράμματος, σしぐまαあるふぁνにゅー μεταβλητή πぱいοおみくろんυうぷしろん δでるたεいぷしろんνにゅー έχει τιμή.[19] None επιστρέφουν κかっぱαあるふぁιいおた οおみくろんιいおた συναρτήσεις πぱいοおみくろんυうぷしろん δでるたεいぷしろんνにゅー επιστρέφουν τιμή (δでるたεいぷしろんνにゅー έχουν return <έκφραση>), όπως γがんまιいおたαあるふぁ παράδειγμα ηいーた print().[26]

Δでるたεいぷしろんνにゅー έχει μεταβλητή τύπου Character (όπως γがんまιいおたαあるふぁ παράδειγμα ηいーた C/C++). Σしぐまεいぷしろん αυτή τたうηいーたνにゅー περίπτωση χρησιμοποιείται ηいーた μεταβλητή String μみゅーεいぷしろん ένα χαρακτήρα.

Ηいーた συνάρτηση type() μας επιστρέφει τたうοおみくろんνにゅー τύπο της μεταβλητής.[27] Αあるふぁνにゅー ηいーた μεταβλητή δでるたεいぷしろんνにゅー έχει πάρει τιμή μας επιστρέφει NoneType.

Ενσωματωμένες δομές δεδομένων

[Επεξεργασία | επεξεργασία κώδικα]

Οおみくろんιいおた ενσωματωμένες δομές δεδομένων σしぐまτたうηいーたνにゅー Python είναι ηいーた Λίστα (List), ηいーた Πλειάδα (Tuple), τたうo Σύνολo (Set) κかっぱαあるふぁιいおた τたうοおみくろん Λεξικό (Dictionary).

Ηいーた λίστα υλοποιεί τたうοおみくろんνにゅー γνωστό αφηρημένο τύπο δεδομένων. Μοιάζει μみゅーεいぷしろん τたうηいーたνにゅー δομή τたうοおみくろんυうぷしろん πίνακα (array), αλλά σしぐまεいぷしろん αντίθεση μみゅーεいぷしろん αυτόν μπορεί νにゅーαあるふぁ περιέχει ανομοιογενή αντικείμενα (items) ή αλλιώς στοιχεία (elements), τたうαあるふぁ οποία μπορεί νにゅーαあるふぁ είναι οποιαδήποτε δομή δεδομένων (ακόμα κかっぱαあるふぁιいおた λίστα). Όπως στους πίνακες τたうαあるふぁ στοιχεία είναι διατεταγμένα σしぐまεいぷしろん συγκεκριμένη σειρά, προσπελάσιμα μみゅーεいぷしろん δείκτες κかっぱαあるふぁιいおた επιτρέπεται ηいーた επανάληψη τους. Ορίζεται μみゅーεいぷしろん ένα ζευγάρι τετραγωνισμένων αγκύλων [] κかっぱαあるふぁιいおた μみゅーεいぷしろん τたうαあるふぁ στοιχεία νにゅーαあるふぁ χωρίζονται μεταξύ τους μみゅーεいぷしろん κόμμα, πぱい.χかい. ηいーた ακολουθία [ <στοιχείο1>, ..., <στοιχείοΝ> ] ορίζει μみゅーιいおたαあるふぁ λίστα Νにゅー στοιχείων. Μπορεί νにゅーαあるふぁ οριστεί μみゅーιいおたαあるふぁ κενή λίστα μόνο μみゅーεいぷしろん τις αγκύλες κかっぱαあるふぁιいおた χωρίς περιεχόμενο.[28]

Επειδή ηいーた συμβολοσειρά (string) αποτελεί μみゅーιいおたαあるふぁ διατεταγμένη ακολουθία χαρακτήρων μοιάζει μみゅーεいぷしろん λίστα κかっぱαあるふぁιいおた χρησιμοποιεί παρόμοιους τελεστές (operators) κかっぱαあるふぁιいおた συναρτήσεις (methods). Ηいーた μεγάλη διαφορά τους είναι ότι ηいーた λίστα είναι δυναμικός ή αλλιώς μεταβλητός (mutable) τύπος δεδομένων, ενώ ηいーた συμβολοσειρά στατικός ή αλλιώς αμετάβλητος (immutable) τύπος δεδομένων. Σしぐまτたうηいーた λίστα μπορούμε νにゅーαあるふぁ αλλάξουμε τたうαあるふぁ στοιχεία πぱいοおみくろんυうぷしろん περιέχει. Σしぐまτたうηいーた συμβολοσειρά ηいーた αλλαγή τたうωおめがνにゅー χαρακτήρων πぱいοおみくろんυうぷしろん περιέχει γίνεται μόνο μみゅーεいぷしろん αντικατάσταση (overwriting) μέσω ανάθεσης (assignment) από νέα συμβολοσειρά.[29][30]

Ηいーた πλειάδα υλοποιεί τたうηいーたνにゅー αντίστοιχη μαθηματική έννοια της πλειάδας. Είναι μみゅーιいおたαあるふぁ πεπερασμένη ακολουθία στοιχείων διατεταγμένων σしぐまεいぷしろん συγκεκριμένη σειρά κかっぱαあるふぁιいおた μοιάζει πολύ μみゅーεいぷしろん τたうηいーたνにゅー λίστα (list). Ορίζεται μみゅーεいぷしろん ένα ζευγάρι παρενθέσεων () κかっぱαあるふぁιいおた μみゅーεいぷしろん τたうαあるふぁ στοιχεία νにゅーαあるふぁ χωρίζονται μεταξύ τους μみゅーεいぷしろん κόμμα, πぱい.χかい. ηいーた ακολουθία ( <στοιχείο1>, ..., <στοιχείοΝ> ) ορίζει μみゅーιいおたαあるふぁ πλειάδα Νにゅー στοιχείων. Αあるふぁνにゅー τたうοおみくろん επιτρέπουν τたうαあるふぁ συμφραζόμενα μπορούν νにゅーαあるふぁ παραληφθούν οおみくろんιいおた παρενθέσεις. Διαφέρει από τたうηいーたνにゅー δομή της λίστας σしぐまτたうοおみくろん ότι ηいーた πλειάδα είναι στατική ή αλλιώς αμετάβλητη (immutable) δομή δεδομένων. Αφού δημιουργηθεί δでるたεいぷしろんνにゅー μπορεί νにゅーαあるふぁ μεταβληθεί. Ηいーた χρήση της πλειάδας είναι προτιμότερη από της λίστας όταν δでるたεいぷしろんνにゅー χρειάζεται νにゅーαあるふぁ αλλάξουμε τたうαあるふぁ στοιχεία της γιατί θεωρητικά είναι αποτελεσματικότερη σしぐまεいぷしろん ταχύτητα στις διάφορες λειτουργίες της. Ηいーた πλειάδα πぱいοおみくろんυうぷしろん περιέχει ένα στοιχείο ορίζεται πάντα μみゅーεいぷしろん ένα κόμμα μετά τたうοおみくろん στοιχείο, πぱい.χかい. ( <στοιχείο>, ), διότι οおみくろんιいおた παρενθέσεις χρησιμοποιούνται κかっぱαあるふぁιいおた σしぐまτたうηいーたνにゅー ομαδοποίηση τたうωおめがνにゅー εκφράσεων (expressions) κかっぱαあるふぁιいおた ηいーた γραφή χωρίς κόμμα, πぱい.χかい. = ( <στοιχείο> ) λαμβάνεται από τたうοおみくろんνにゅー διερμηνευτής (interpreter) ως ανάθεση (assignment), δηλαδή = <στοιχείο>.[29]

To λεξικό (dictionary) είναι μみゅーιいおたαあるふぁ δομή δεδομένων γがんまιいおたαあるふぁ τたうηいーたνにゅー αποθήκευση ζευγαριών τιμών της μορφής κλειδί : τιμή (key : value). Ορίζεται μみゅーεいぷしろん ένα ζευγάρι αγκύλων {} κかっぱαあるふぁιいおた μみゅーεいぷしろん τたうαあるふぁ ζευγάρια νにゅーαあるふぁ χωρίζονται μεταξύ τους μみゅーεいぷしろん κόμμα, πぱい.χかい. ηいーた ακολουθία { κλειδί1 : τιμή1, ..., κλειδίΝ : τιμήΝ } ορίζει ένα λεξικό Νにゅー ζευγαριών. Ανάμεσα σしぐまτたうοおみくろん κλειδί κかっぱαあるふぁιいおた τたうηいーたνにゅー τιμή υπάρχει ηいーた άνω-κάτω τελεία (:). Τたうαあるふぁ κλειδιά πρέπει νにゅーαあるふぁ είναι μοναδικά γιατί χρησιμεύουν σしぐまτたうηいーたνにゅー προσπέλαση της αντίστοιχης τιμής. Τたうαあるふぁ κλειδιά πρέπει νにゅーαあるふぁ είναι στατικοί ή αλλιώς αμετάβλητοι (immutable) τύποι δεδομένων, όπως ακέραιοι αριθμοί, συμβολοσειρές, αμετάβλητες πλειάδες (όταν όλα τたうαあるふぁ στοιχεία της πλειάδας είναι αμετάβλητα).[31]

Ανάθεση τιμών (assignment)

[Επεξεργασία | επεξεργασία κώδικα]

Επειδή ηいーた Python είναι δυναμική γλώσσα προγραμματισμού (dynamically typed) διαφέρει από τις άλλες παραδοσιακές γλώσσες προστακτικού προγραμματισμού (Imperative programming) σしぐまτたうοおみくろんνにゅー τρόπο πぱいοおみくろんυうぷしろん γίνεται ηいーた ανάθεση τιμών στις μεταβλητές της. Συνήθως οおみくろんιいおた μεταβλητές δηλώνονται πぱいρろーιいおたνにゅー τους ανατεθούν τιμές κかっぱαあるふぁιいおた μαζί δηλώνεται κかっぱαあるふぁιいおた οおみくろん τύπος τους (interer, floating point, character, κかっぱλらむだπぱい.). Σしぐまτたうηいーたνにゅー Python οおみくろんιいおた μεταβλητές δηλώνονται μαζί μみゅーεいぷしろん τたうηいーたνにゅー ανάθεση τたうωおめがνにゅー τιμών σしぐまεいぷしろん αυτές (ακόμα κかっぱαあるふぁιいおた όταν τους δοθεί ηいーた τιμή None) κかっぱαあるふぁιいおた δでるたεいぷしろんνにゅー είναι δεσμευμένες σしぐまεいぷしろん κάποιο συγκεκριμένο τύπο δεδομένων. Μία μεταβλητή μπορεί νにゅーαあるふぁ είναι ακεραία (integer) κかっぱαあるふぁιいおた ηいーた ίδια σしぐまτたうηいーた συνέχεια νにゅーαあるふぁ γίνει συμβολοσειρά (string) αあるふぁνにゅー της ανατεθεί τιμή συμβολοσειράς.

Σしぐまτたうηいーたνにゅー Python, όταν κατά τたうηいーたνにゅー εκτέλεση ενός προγράμματος, αναθέτουμε τιμή σしぐまεいぷしろん μみゅーιいおたαあるふぁ μεταβλητή x, πぱい.χかい. x = 2, ηいーた τιμή 2 αντιγράφεται σしぐまεいぷしろん χώρο μνήμης πού δεσμεύεται (memory allocation), μαζί μみゅーεいぷしろん άλλες ιδιότητες, όπως πぱい.χかい. ότι οおみくろん τύπος της είναι ακέραιος (integer).[32] Σしぐまτたうηいーたνにゅー μεταβλητή x αποδίδεται ηいーた διεύθυνση (memory address) αυτής της θέσης σしぐまτたうηいーたνにゅー μνήμη. Ηいーた μεταβλητή λειτουργεί σしぐまαあるふぁνにゅー δείκτης (pointer). Ηいーた ίδια ηいーた μεταβλητή δでるたεいぷしろんνにゅー έχει κάποια τιμή ή τύπο δεδομένων, αλλά έχει τたうηいーた θέση της μνήμης πぱいοおみくろんυうぷしろん «αντιπροσωπεύει». Σしぐまεいぷしろん ένα πρόγραμμα μετά τたうηいーたνにゅー ανάθεση x = 2 (ηいーた μεταβλητή είναι τύπου integer), σしぐまτたうηいーたνにゅー συνέχεια της εκτέλεσης μπορεί νにゅーαあるふぁ εκτελεστεί ηいーた ανάθεση x = "hellow world", οπότε ηいーた μεταβλητή «αντιπροσωπεύει» τたうηいーたνにゅー συμβολοσειρά "hellow world" (είναι τύπου string). Σしぐまτたうηいーたνにゅー δεύτερη ανάθεση ηいーた τιμή 2 δεν «αντιπροσωπεύεται» από κάποια μεταβλητή (δでるたεいぷしろんνにゅー χρειάζεται πλέον σしぐまτたうοおみくろん πρόγραμμα) κかっぱαあるふぁιいおた οおみくろん συλλέκτης απορριμμάτων (garbage collector), της Python, αναλαμβάνει «αυτόματα» νにゅーαあるふぁ αποδεσμεύσει (memory de-allocation) τたうοおみくろんνにゅー χώρο της μνήμης πぱいοおみくろんυうぷしろん αυτή κατέχει.[33][32]

Ηいーた στοίχιση σしぐまτたうαあるふぁ αριστερά ή αλλιώς οおみくろんιいおた αριστερές εσοχές (indentation) έχουν μεγάλη σημασία γιατί ορίζουν τたうαあるふぁ block (ομαδοποίηση) τたうοおみくろんυうぷしろん κώδικα.[34] Αυτό σしぐまεいぷしろん άλλες γλώσσες, όπως C κかっぱαあるふぁιいおた Java επιτυγχάνεται μみゅーεいぷしろん τたうηいーたνにゅー χρήση τたうωおめがνにゅー αγκύλων { }.[35] Σしぐまτたうηいーたνにゅー Python τたうοおみくろん block κώδικα αρχίζει εκεί πぱいοおみくろんυうぷしろん ηいーた αριστερή εσοχή αυξάνεται προς τたうαあるふぁ δεξιά κかっぱαあるふぁιいおた τελειώνει εκεί πぱいοおみくろんυうぷしろん καταργείται ηいーた εσοχή. Εσοχή μέσα σしぐまεいぷしろん εσοχή σημαίνει block μέσα σしぐまεいぷしろん block (nested blocks).[24] Ηいーた εσοχή μπορεί νにゅーαあるふぁ είναι οσοδήποτε μεγάλη ή μικρή - τたうοおみくろんυうぷしろん ίδιου πάντα μεγέθους - αλλά συνίσταται ηいーた χρήση 4 κενών χαρακτήρων (spacebars) γがんまιいおたαあるふぁ ευκολότερη αναγνωσιμότητα τたうοおみくろんυうぷしろん κώδικα.[36]

Γがんまιいおたαあるふぁ παράδειγμα μみゅーιいおたαあるふぁ εμφωλιασμένη εντολή if ορίζεται ως εξής:[35]

if <λογική έκφραση1> :
    εντολή1
    εντολή2
    if <λογική έκφραση2> :
        εντολή3
        εντολή4
    ενολή5
εντολή6

Τたうοおみくろん block της πρώτης if περιέχει τις εντολή1, εντολή2, τたうηいーたνにゅー δεύτερη if κかっぱαあるふぁιいおた τελειώνει μみゅーεいぷしろん τたうηいーたνにゅー εντολή5. Ηいーた εντολή6 είναι εκτός block (δでるたεいぷしろんνにゅー ανήκει σしぐまτたうηいーたνにゅー εξωτερική if). Ηいーた εσωτερική if (εμφωλιασμένη) μみゅーεいぷしろん τたうηいーたνにゅー δική της εσοχή ορίζει ένα block (πぱいοおみくろんυうぷしろん περιέχει τたうηいーたνにゅー εντολή3 κかっぱαあるふぁιいおた εντολή4) μέσα σしぐまτたうοおみくろん block της εξωτερικής if.

Υποστηρίζει τους γνωστούς, μみゅーεいぷしろん τις άλλες γλώσσες προγραμματισμού, τελεστές (operators), όπως τους +, -, *, /,**, %, πぱいοおみくろんυうぷしろん όμως έχουν κάποιες διαφοροποιήσεις ανάλογα μみゅーεいぷしろん τους τελεστέους (operands), δηλαδή τたうοおみくろんνにゅー τύπο τたうωおめがνにゅー μεταβλητών, όπου εφαρμόζονται (πολυμορφισμός).[37]

Οおみくろん τελεστής της πρόσθεσης + όταν οおみくろんιいおた τελεστέοι είναι Strings εκτελεί τたうηいーたνにゅー πράξη της συνένωσης (concatenation) κかっぱαあるふぁιいおた οおみくろん πολλαπλασιασμός * τたうηいーたνにゅー πράξη της αναπαραγωγής (replication) τたうοおみくろんυうぷしろん String όταν αυτό πολλαπλασιάζεται μみゅーεいぷしろん ακέραιο (integer). Δηλαδή ηいーた έκφραση (expression): "abc" + "def" έχει ως αποτέλεσμα "abcdef" κかっぱαあるふぁιいおた ηいーた "abc" * 3 ή 3 * "abc" έχει ως αποτέλεσμα "abcabcabc" αντίστοιχα.[18]

Υποστηρίζει τους λογικούς τελεστές and, or κかっぱαあるふぁιいおた not γがんまιいおたαあるふぁ μεταβλητές τύπου Boolean. Τたうαあるふぁ εμφωλιασμένα (nested) not αποδίδονται ως διπλή άρνηση (άρνηση σしぐまτたうηいーたνにゅー άρνηση). Ηいーた σειρά (προτεραιότητα) εκτέλεσης είναι not, and, or.[24]

Εμβέλεια ονομάτων οντοτήτων (scope)

[Επεξεργασία | επεξεργασία κώδικα]

Στις οντότητες ή αντικείμενα (μεταβλητές, συναρτήσεις, κλάσεις, κかっぱλらむだπぱい.), πぱいοおみくろんυうぷしろん δημιουργούνται σしぐまεいぷしろん ένα πρόγραμμα, γがんまιいおたαあるふぁ νにゅーαあるふぁ μπορούν νにゅーαあるふぁ χρησιμοποιηθούν (προσπελαστούν), αποδίδονται ονόματα (name binding). Γがんまιいおたαあるふぁ παράδειγμα σしぐまτたうηいーたνにゅー Python μみゅーιいおたαあるふぁ οντότητα, όπως είναι μみゅーιいおたαあるふぁ μεταβλητή, δでるたεいぷしろんνにゅー δηλώνεται, αλλά δημιουργείται κかっぱαあるふぁιいおた ονοματίζεται όταν της γίνει ανάθεση (assignment) κάποιας τιμής. Οντότητες πぱいοおみくろんυうぷしろん δημιουργούνται μέσα σしぐまεいぷしろん ένα block κώδικα, όπως τたうοおみくろん σώμα μιας συνάρτησης, μιας εντολής if ή for, κかっぱλらむだπぱい., έχουν περιορισμένη εμβέλεια κかっぱαあるふぁιいおた μπορούν νにゅーαあるふぁ χρησιμοποιηθούν μόνο μέσα σしぐまτたうοおみくろん block πぱいοおみくろんυうぷしろん έχουν ονομαστεί. Ένα τέτοιο όνομα δでるたεいぷしろんνにゅー είναι προσπελάσιμο εκτός τたうοおみくろんυうぷしろん block ακόμα κかっぱαあるふぁιいおた αあるふぁνにゅー έχει τたうηいーたνにゅー ίδια ονομασία κかっぱαあるふぁιいおた λέγεται ότι είναι τοπικής εμβέλειας (local scope). Ένα όνομα πぱいοおみくろんυうぷしろん δηλώνεται σしぐまτたうοおみくろん κύριο σώμα (block) τたうοおみくろんυうぷしろん προγράμματος μπορεί νにゅーαあるふぁ προσπελαστεί σしぐまεいぷしろん ολόκληρο τたうοおみくろん πρόγραμμα, ακόμα κかっぱαあるふぁιいおた σしぐまτたうαあるふぁ block πぱいοおみくろんυうぷしろん έχουν οριστεί μέσα σしぐまτたうοおみくろん πρόγραμμα κかっぱαあるふぁιいおた λέγεται ότι είναι καθολικής εμβέλειας (global scope).[38]

Μέσα σしぐまεいぷしろん ένα block οおみくろん διερμηνευτής (interpreter) χρησιμοποιεί τたうηいーたνにゅー τοπική ονομασία μιας οντότητας ακόμα κかっぱαあるふぁιいおた αあるふぁνにゅー υπάρχει άλλη μみゅーεいぷしろん τたうηいーたνにゅー ίδια ονομασία κかっぱαあるふぁιいおた καθολική εμβέλεια. Συγκεκριμένα οおみくろん διερμηνευτής όταν συναντήσει ένα όνομα (πぱい.χかい. μεταβλητής) μέσα σしぐまεいぷしろん ένα block ελέγχει πρώτα αあるふぁνにゅー έχει δημιουργηθεί αυτό τたうοおみくろん όνομα μέσα σしぐまτたうοおみくろん block (οπότε είναι τοπικής εμβέλειας) κかっぱαあるふぁιいおた τたうοおみくろん χρησιμοποιεί, έστω κかっぱαあるふぁιいおた αあるふぁνにゅー υπάρχει ίδια ονομασία εκτός τたうοおみくろんυうぷしろん block (καθολικής εμβέλειας). Αあるふぁνにゅー δでるたεいぷしろんνにゅー τたうοおみくろん βべーたρろーεいぷしろんιいおた μέσα σしぐまτたうοおみくろん block τότε κかっぱαあるふぁιいおた μόνο τότε ελέγχει αあるふぁνにゅー υπάρχει τέτοια ονομασία πぱいοおみくろんυうぷしろん νにゅーαあるふぁ έχει δημιουργηθεί σしぐまτたうοおみくろん κύριο μέρος τたうοおみくろんυうぷしろん προγράμματος (είναι καθολικής εμβέλειας) κかっぱαあるふぁιいおた χρησιμοποιεί αυτήν. Δηλαδή μみゅーιいおたαあるふぁ καθολικής εμβέλειας μεταβλητή χρησιμοποιείται μέσα σしぐまεいぷしろん ένα block, μόνο αあるふぁνにゅー δでるたεいぷしろんνにゅー υπάρχει τοπικής εμβέλειας μεταβλητή μみゅーεいぷしろん τたうοおみくろん ίδιο όνομα, μέσα σしぐまτたうοおみくろん block.[38][39]

Όταν μέσα σしぐまεいぷしろん ένα block γίνει ηいーた ανάθεση num = 123, τότε δημιουργείται (αναγκαστικά) ηいーた τοπικής εμβέλειας μεταβλητή num ακόμα κかっぱαあるふぁιいおた αあるふぁνにゅー υπάρχει καθολικής εμβέλειας num. Σしぐまτたうηいーたνにゅー περίπτωση πぱいοおみくろんυうぷしろん δでるたεいぷしろんνにゅー είναι επιθυμητό νにゅーαあるふぁ δημιουργηθεί ηいーた τοπική num, αλλά ηいーた τιμή 123 νにゅーαあるふぁ ανατεθεί σしぐまτたうηいーたνにゅー καθολική num γίνεται χρήση της δήλωσης global. Δηλώνοντας global num, πぱいρろーιいおたνにゅー από τたうηいーたνにゅー num = 123, οおみくろん διερμηνευτής δでるたεいぷしろんνにゅー δημιουργεί τοπική num, αλλά δίνει τたうηいーたνにゅー τιμή 123, σしぐまτたうηいーたνにゅー καθολική πぱいοおみくろんυうぷしろん ήδη υπάρχει.[38][39]

Παράδειγμα προγράμματος

[Επεξεργασία | επεξεργασία κώδικα]

Ένα από τたうαあるふぁ πぱいιいおたοおみくろん απλά προγράμματα σしぐまτたうηいーたνにゅー γλώσσα Python είναι ηいーた εμφάνιση ενός γραπτού αποτελέσματος (πぱい.χかい. Hello, world!):

>>> print("Hello, world!")
Hello, world!

Ένα ιδιαίτερο χαρακτηριστικό της γλώσσας είναι ηいーた χρήση κενών διαστημάτων σしぐまαあるふぁνにゅー εσοχές (whitespace) γがんまιいおたαあるふぁ τたうοおみくろんνにゅー διαχωρισμό τたうωおめがνにゅー συντακτικών δομών (block of code) τたうοおみくろんυうぷしろん προγράμματος, σしぐまεいぷしろん αντίθεση μみゅーεいぷしろん τたうηいーたνにゅー πρακτική σしぐまεいぷしろん άλλες γλώσσες όπου γがんまιいおたαあるふぁ τたうοおみくろんνにゅー ίδιο σκοπό χρησιμοποιούνται ειδικά σύμβολα (πぱい.χかい. αγκύλες). Αυτό, σしぐまεいぷしろん συνδυασμό μみゅーεいぷしろん τたうοおみくろん ότι χρησιμοποιεί πλήρεις αγγλικές λέξεις σしぐまτたうηいーた θέση συμβόλων, καθιστούν τたうοおみくろんνにゅー κώδικα της Python ευανάγνωστο από όσους έχουν βασική γνώση τたうωおめがνにゅー αγγλικών.

age = 21
if age >= 18:
    print("You vote")
else:
    print("You don't vote")

Διαδικαστικός προγραμματισμός

[Επεξεργασία | επεξεργασία κώδικα]

Γがんまιいおたαあるふぁ παράδειγμα, οおみくろん παρακάτω γεννήτορας (generator) generate_primes παράγει πρώτους αριθμούς:

from itertools import count
def generate_primes(stop_at=None):
  primes = []
  for n in count(2):
    if stop_at is not None and n > stop_at:
      return
    composite = False
    for p in primes:
      if not n % p:
        composite = True
        break
      elif p**2 > n: 
        break
    if not composite:
      primes.append(n)
      yield n

Κかっぱαあるふぁιいおた γがんまιいおたαあるふぁ νにゅーαあるふぁ καλέσουμε τたうηいーた συνάρτηση, υπολογίζοντας τους πρώτους αριθμούς από τたうοおみくろん 1 στο 100:

for i in generate_primes(): 
  if i > 100: break
  print(i)

Αντικειμενοστρεφής προγραμματισμός

[Επεξεργασία | επεξεργασία κώδικα]

Παράδειγμα αντικειμενοστρεφούς προγράμματος γραμμένο σしぐまεいぷしろん Python, τたうοおみくろん οποίο παρουσιάζει μみゅーιいおたαあるふぁ κλάση Υπάλληλος:

class Employee:
    def __init__(self, id, name, position):
        self.id = id;
        self.name = name;
        self.position = position;
    def printEmployee(self):
        print(self.id, "|", self.name, "|", self.position);

e1 = Employee(1230, "Νικόλαος Παπαγεωργού", "Βοηθός Προγραμματιστή");
e1.printEmployee();

Ηいーた Python ενδείκνυται ως γλώσσα εισαγωγική σしぐまτたうοおみくろんνにゅー προγραμματισμό κかっぱαあるふぁιいおた σしぐまτたうηいーたνにゅー επιστήμη τたうωおめがνにゅー υπολογιστών γενικότερα, μみゅーεいぷしろん δεδομένη τたうηいーたνにゅー απλότητα σしぐまτたうηいーた σύνταξή της. Διεθνώς πολλά πανεπιστήμια αλλά κかっぱαあるふぁιいおた ηいーた δευτεροβάθμια εκπαίδευση σしぐまεいぷしろん πολλές χώρες, υιοθετούν μみゅーιいおたαあるふぁ python first προσέγγιση εισαγωγής σしぐまτたうοおみくろんνにゅー προγραμματισμό. Σしぐまτたうηいーた δευτεροβάθμια εκπαίδευση της χώρας μας τたうοおみくろん πρώτο βήμα έγινε μみゅーεいぷしろん τたうαあるふぁ Επαγγελματικά Λύκεια σしぐまτたうαあるふぁ οποία έχει εισαχθεί σしぐまτたうοおみくろん σχετικό μάθημα (πηγή: Αράπογλου, κかっぱ.αあるふぁ.2017).[40]

Επίσης, ηいーた Python χρησιμοποιείται ως εργαλείο γがんまιいおたαあるふぁ εισαγωγή σしぐまεいぷしろん βασικές έννοιες τたうωおめがνにゅー υπολογιστών, (βλέπε γがんまιいおたαあるふぁ παράδειγμα: Avouris et al. 2017[41]), ενώ ηいーた Python έχει υποστηρίξει μみゅーεいぷしろん επιτυχία οικοδομιστικές προσεγγίσεις σしぐまτたうηいーた μάθηση, σしぐまεいぷしろん επί μέρους αντικείμενα, όπως σしぐまεいぷしろん media studies (βλέπε Guzdial, 2004). Άλλες προτεινόμενες προσεγγίσεις είναι ηいーた χρήση της Python γがんまιいおたαあるふぁ διαχείριση δεδομένων, γがんまιいおたαあるふぁ μελέτες σしぐまεいぷしろん ανθρωπιστικές σπουδές, γがんまιいおたαあるふぁ γεωγραφικά συστήματα πληροφοριών, κかっぱλらむだπぱい.

Υπάρχει διαθέσιμο πλούσιο υλικό κかっぱαあるふぁιいおた σしぐまτたうηいーたνにゅー Ελληνική γλώσσα, πέραν της διεθνούς βιβλιογραφίας κかっぱαあるふぁιいおた πηγών. Γがんまιいおたαあるふぁ παράδειγμα στις ιστοσελίδες διαδικτυακών μαθημάτων mathesis.cup.gr κかっぱαあるふぁιいおた coursity.gr υπάρχουν διαδικτυακά μαθήματα εισαγωγής σしぐまτたうοおみくろんνにゅー προγραμματισμό μみゅーεいぷしろん Python, τたうοおみくろん περιεχόμενο τたうωおめがνにゅー οποίων διατίθεται ελεύθερα. Σしぐまτたうοおみくろん mathesis.cup.gr υπάρχει μάθημα προχωρημένου προγραμματισμού μみゅーεいぷしろん Python.

Επίσης οργανώνονται από σύμπραξη Ελληνικών Πανεπιστημίων κかっぱαあるふぁιいおた τたうηいーたνにゅー υποστήριξη της ΕいぷしろんΛらむだΛらむだΑあるふぁΚかっぱ θερινά σχολεία σしぐまτたうηいーたνにゅー Python.

  1. «Programming Language Trends - O'Reilly Radar». Radar.oreilly.com. 2 Αυγούστου 2006. Ανακτήθηκε στις 17 Ιουλίου 2013. 
  2. «The RedMonk Programming Language Rankings: January 2013 – tecosystems». Redmonk.com. 28 Φεβρουαρίου 2013. Ανακτήθηκε στις 17 Ιουλίου 2013. 
  3. 3,0 3,1 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 5 (σしぐまεいぷしろんλらむだ. 14 τたうοおみくろんυうぷしろん pdf)
  4. 4,0 4,1 4,2 4,3 4,4 4,5 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 7 (σしぐまεいぷしろんλらむだ. 16 τたうοおみくろんυうぷしろん pdf)
  5. (Αγγλικά) «The Making of Python: A Conversation with Guido van Rossum, Part I by Bill Venners» σしぐまτたうοおみくろん artima.com. Δημοσιεύθηκε 13/01/2003. Αρχειοθετήθηκε 19/02/2019. Ανακτήθηκε 27/04/2019.
  6. Summerfield, Mark. Rapid GUI Programming with Python and Qt. Python is a very expressive language, which means that we can usually write far fewer lines of Python code than would be required for an equivalent application written in, say, C++ or Java 
  7. McConnell, Steve (30 Νοεμβρίου 2009). Code Complete, p. 100. ISBN 9780735636972. 
  8. 8,0 8,1 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 6 (σしぐまεいぷしろんλらむだ. 15 τたうοおみくろんυうぷしろん pdf)
  9. «PyInstaller Home Page». Αρχειοθετήθηκε από τたうοおみくろん πρωτότυπο στις 8 Ιουλίου 2014. Ανακτήθηκε στις 27 Ιανουαρίου 2014. 
  10. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 7 (σしぐまεいぷしろんλらむだ. 16 τたうοおみくろんυうぷしろん pdf)
  11. (Αγγλικά) «History of Python» από python-course.eu. Αρχειοθετήθηκε 29/08/2017. Ανακτήθηκε 27/04/2019.
  12. «2to3 - Automated Python 2 to 3 code translation — Python 3.7.4 documentation». docs.python.org (σしぐまτたうαあるふぁ Αγγλικά). Ανακτήθηκε στις 14 Σεπτεμβρίου 2019. 
  13. (Αγγλικά) «Python 2to3 windows CMD» σしぐまτたうοおみくろん stackoverflow.com. Ανακτήθηκε 2019-09-14.
  14. (Αγγλικά) Carlie Fairchild. «Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life» σしぐまτたうοおみくろん www.linuxjournal.com. Δημοσιεύθηκε 12/07/2018. Αρχειοθετήθηκε 27/03/2019. Ανακτήθηκε 15/04/2019.
  15. (Αγγλικά) «Python boss Guido van Rossum steps down after 30 years» σしぐまτたうοおみくろん www.theinquirer.net. Αρχειοθετήθηκε 19/02//2019. Ανακτήθηκε 15/04/2019.
  16. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 11 (σしぐまεいぷしろんλらむだ. 20 τたうοおみくろんυうぷしろん pdf)
  17. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 13 (σしぐまεいぷしろんλらむだ. 22 τたうοおみくろんυうぷしろん pdf)
  18. 18,0 18,1 18,2 «Μαθήματα Προγραμματισμού Python. Μάθημα 2οおみくろん» τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 27/09/2017. Αρχειοθετήθηκε 23/04/2019. Ανακτήθηκε 23/04/2019.
  19. 19,0 19,1 19,2 19,3 19,4 Μιχάλης Πλεξουσάκης, 2016. «Γλώσσα προγραμματισμού python3 - Μεταβλητές - Ονόματα μεταβλητών - Λέξεις κλειδιά» από users.tem.uoc.gr. Αρχειοθετήθηκε 20/04/2019. Ανακτήθηκε 23/04/2019.
  20. 20,0 20,1 20,2 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, Κεφάλαιο 3, σしぐまεいぷしろんλらむだ. 17-23 (σしぐまεいぷしろんλらむだ. 26-32 τたうοおみくろんυうぷしろん pdf)
  21. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 22 (σしぐまεいぷしろんλらむだ. 31 τたうοおみくろんυうぷしろん pdf)
  22. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές σしぐまεいぷしろんλらむだ. 21 (σしぐまεいぷしろんλらむだ. 30 τたうοおみくろんυうぷしろん pdf)
  23. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 27 (σしぐまεいぷしろんλらむだ. 36 τたうοおみくろんυうぷしろん pdf)
  24. 24,0 24,1 24,2 «Μαθήματα Προγραμματισμού Python. Μάθημα 3οおみくろん» τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 04/10/2017. Αρχειοθετήθηκε 23/04/2019. Ανακτήθηκε 23/04/2019.
  25. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 34-37 (σしぐまεいぷしろんλらむだ. 43-46 τたうοおみくろんυうぷしろん pdf)
  26. «Μαθήματα Προγραμματισμού Python. Μάθημα 4οおみくろん» τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 11/10/2017. Αρχειοθετήθηκε 24/04/2019. Ανακτήθηκε 23/04/2019.
  27. Αράπογλου, Βραχνός, κかっぱλらむだπぱい, βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 32 (σしぐまεいぷしろんλらむだ. 33 τたうοおみくろんυうぷしろん pdf)
  28. «Μαθήματα Προγραμματισμού Python. Μάθημα 6οおみくろん» τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 25/10/2017. Αρχειοθετήθηκε 25/04/2019. Ανακτήθηκε 23/04/2019.
  29. 29,0 29,1 «Μαθήματα Προγραμματισμού Python. Μάθημα 7οおみくろん» τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 01/11/2017. Αρχειοθετήθηκε 25/04/2019. Ανακτήθηκε 23/04/2019.
  30. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 86-98 (σしぐまεいぷしろんλらむだ. 95-107 τたうοおみくろんυうぷしろん pdf)
  31. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 103-106 (σしぐまεいぷしろんλらむだ. 112-115 τたうοおみくろんυうぷしろん pdf)
  32. 32,0 32,1 Αράπογλου, Βραχνός, κかっぱλらむだπぱい, βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 36-38 (σしぐまεいぷしろんλらむだ. 37-39 τたうοおみくろんυうぷしろん pdf)
  33. Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 22 (σしぐまεいぷしろんλらむだ. 31 τたうοおみくろんυうぷしろん pdf)
  34. Μιχάλης Πλεξουσάκης, 2016. «Γλώσσα προγραμματισμού python3 - Λογικές εκφράσεις κかっぱαあるふぁιいおた μεταβλητές» από users.tem.uoc.gr. Αρχειοθετήθηκε 30/03/2018. Ανακτήθηκε 23/04/2019.
  35. 35,0 35,1 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 38 (σしぐまεいぷしろんλらむだ. 47 τたうοおみくろんυうぷしろん pdf)
  36. (Αγγλικά) Συνίσταται ηいーた χρήση 4 κενών στις εσοχές. «PEP 8 -- Style Guide for Python Code -> Indentation» από python.org. Δημοσιεύθηκε 05/07/2001. Αρχειοθετήθηκε 17/04/2019. Ανακτήθηκε 22/04/2019.
  37. Αράπογλου, Βραχνός, κかっぱλらむだπぱい., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 33 (σしぐまεいぷしろんλらむだ. 34 τたうοおみくろんυうぷしろん pdf)
  38. 38,0 38,1 38,2 «Μαθήματα Προγραμματισμού Python. Μάθημα 5οおみくろん», τたうοおみくろんυうぷしろん Γιάννη Φυτίλη σしぐまτたうοおみくろん pcsteps.gr. Δημοσιεύθηκε 18/10/2017. Αρχειοθετήθηκε 25/04/2019. Ανακτήθηκε 23/04/2019.
  39. 39,0 39,1 Αγγελιδάκης, Νにゅー., βべーたλらむだ. πηγές, σしぐまεいぷしろんλらむだ. 58-60 (σしぐまεいぷしろんλらむだ. 67-69 τたうοおみくろんυうぷしろん pdf)
  40. Αναστάσιος Χατζηπαπαδόπουλος, Δでるたρろー. Βασίλης Σしぐま. Μπελεσιώτης, 2018. «Πέτρα-Ψαλίδι-Χαρτί. Από τたうοおみくろん Δομημένο σしぐまτたうοおみくろんνにゅー Αντικειμενοστρεφή προγραμματισμό Αρχειοθετήθηκε 2019-04-12 σしぐまτたうοおみくろん Wayback Machine.», Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Αρχειοθετήθηκε 2019-01-29 σしぐまτたうοおみくろん Wayback Machine., σしぐまεいぷしろんλらむだ. 14 (σしぐまεいぷしろんλらむだ. 2 τたうοおみくろんυうぷしろん pdf). Αρχειοθετήθηκε 12/04/2019. Ανακτήθηκε 12/04/2019.
  41. Avouris, Nikolaos; Sgarbas, Kyriakos; Paliouras, Vassilis; Koukias, Michalis (2017-04). «Work in progress: An introduction to computing course using a Python-based experiential approach». 2017 IEEE Global Engineering Education Conference (EDUCON) (IEEE). doi:10.1109/educon.2017.7943071. ISBN 9781509054671. http://dx.doi.org/10.1109/educon.2017.7943071. 
  • (Αγγλικά) Guzdial, M. (2004). Introduction to media computation: A multimedia cookbook in Python. Pearson/Custom Pub.

Εξωτερικοί σύνδεσμοι

[Επεξεργασία | επεξεργασία κώδικα]
  1. «PYTHON». Πανεπιστημιακές Εκδόσεις Κρήτης. 2016-10-01. Αρχειοθετήθηκε από τたうοおみくろん πρωτότυπο στις 2017-05-09. https://web.archive.org/web/20170509131811/http://www.cup.gr/book/python. Ανακτήθηκε στις 2018-07-06.