ΕΠΛ371 – ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τεχνολογίες Web Απαραίτητες γνώσεις για την υλοποίηση της άσκησης.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Scripting Language Python
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
Πανεπιστήμιο Αιγαίου Σχολή Επιστημών της Διοίκησης Τμήμα Μηχανικών Οικονομίας & Διοίκησης Computer applications in the modern enterprise Γ. Κούζας, PhD.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Υλοποίηση μεταφραστή C με επεκτάσεις OpenMP Λεοντιάδης Ηλίας Τζούμας Γεώργιος Πτυχιακή εργασία Τελική παρουσίαση Υπεύθυνος καθηγητής Β. Β. Δημακόπουλος.
Συστήματα Διαχείρισης Βάσεων Δεδομένων Τίμος Σελλής, Καθηγητής ΕΜΠ, Διευθυντής ΙΠΣΥΠ, Ε.K. “Αθηνά”
MySQL + Γλώσσα Προγραμματισμού
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Python And Robotics.
Γλωσσική Τεχνολογία Object-Orientation in Python.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Εισαγωγή Γρηγοριάδης ΒασίλειοςΑΜ:753
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
JAVA και SQL Δαμιανός Χατζηαντωνίου
AJAX Asynchronous JavaScript and XML Θ. Βαρβαρίγου Καθηγ. ΕΜΠ Τηλ
ΠΕΡΙΓΡΑΦΗ ΓΛΩΣΣΑΣ PYTHON
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Google's Google App Engine and Google's Datastore API Andreas Manoli.
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ – ΤΜΗΜΑ ΠΛΑΡΟΦΟΡΙΚΗΣ ΕΠΛ371 –ΠρογραμματισμόςΣυστημάτων ΕΥΘΥΜΙΑ ΠΑΠΑΔΟΠΟΥΛΟΥ ΞΑΝΘΗ ΜΑΡΚΟΥ ΡΕΑ ΑΡΧΑΙΟΥ.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
P ERL One of the most respectable general-purpose scripting languages Δημητρίου Νίκος Δημητρίου Θεόδωρος Ζαβού Έλλη.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πολυμορφισμός.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
32η Συνάντηση Εκπαιδευτικών στη Δυτική Μακεδονία σε Θέματα Τ. Π. Ε
Χ. Καραγιαννίδης, ΠΘ-ΠΤΕΑΑνάπτυξη Εφαρμογών για την ΕΕΑ Διάλεξη 5: Ανάπτυξη Περιεχομένου 1/9 19/3/2015 Διάλεξη 5 Εργαλεία Συγγραφής Περιεχομένου Ανάπτυξη.
University of Crete HY566-Semantic Web CS566 – Semantic Web Computer Science Department - UoC Heraklion 1 April, 2003 Παπαγγελής Μάνος, Κοφφινά Ιωάννα,
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
Γλωσσική Τεχνολογία HTML/XML Processing – HTTP Services.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
#develop The open source IDE for.NET. Τι είναι το #develop? o Διαβάζεται SharpDevelop. o Είναι ένα opensource IDE για το.ΝΕΤ platform. o Είναι μία συλλογή.
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού ATM loop Print_input_message (” Welcome - Please enter your card”) ; exit when Card_input ; end loop.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Torque Game Engine Κώστας Καρπούζης (kkarpou) Λώρη Μαλατέστα (lori)
Μάθημα 9 Λίγο απ’ όλα! HTML 5 Advanced PHP XML. HTML 5 Πρόκειται για μια νέα έκδοση της HTML που συμπληρώνει τις δυνατότητες της γλώσσας με κάποια Tags.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Προγραμματιστική εργασία: «WebNews»
ΗΜΥ 100: Εισαγωγή στην Τεχνολογία Διάλεξη 5 Η εξέλιξη του Διαδικτύου TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Μάθημα 1 ΔΙΑΔΙΚΤΥΟ Διευθύνσεις και Πρωτόκολλα. Διευθύνσεις Πως αποκωδικοποιούνται οι διευθύνσεις: Πρωτόκολλο://server.domain.
Windows Programming Web Forms.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Διευθύνσεις και Πρωτόκολλα στο διαδίκτυο
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Κατανεμημένα Συστήματα
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Ανακοινώσεις THN ΑΛΛΗ ΠΑΡΑΣΚΕΥΗ ΣΤΟ ΚΕΝΤΡΟ Η/Υ ΓΙΑ ΦΕΤΟΣ:
Great Sand Dunes Η χρονογραμμή που ακολουθεί βασίστηκε στο πρότυπο της Christy Keeler ( Πηγές περιεχομένου.
3. Βασικά στοιχεία γλώσσας προγραμματισμού
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

ΕΠΛ371 – ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ371 – ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ Python ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2009 Αγαθοκλέους Μάριος Γιάλλουρος Μιχάλης Γιαννή Παναγιώτα

Ιστορική Αναδρομή Δημιουργός: Guido van Rossum Ανάπτυξη : 1990 , CWI του Άμστερνταμ και συνεχίζεται στο CNRI του Reston Πρώτη εμφάνιση :1991 Γλώσσα υψηλού επιπέδου Διερμηνευόμενη (interpreted) Χρήση interpreted, αντί για μεταγλωττιστή,  γρήγορη και ευέλικτη Αλληλεπιδραστική (interactive) Χρήση interpreted αλληλεπιδραστικά για δοκιμή ενός μέρους του κώδικα ή για εξερεύνηση της γλώσσας γράφοντας απλές εντολές στη γραμμή εντολών Αντικειμενοστρεφής (object-oriented). Όπως Java ή C++ Ανοικτό λογισμικό(free software) Αρχικά : γλώσσα scripting για το λειτουργικό σύστημα Amoeba

Συνδυάζει σημαντική ισχύ με πολύ σαφή σύνταξη. Χρήση: modules, classes, exceptions και πολύ υψηλού επιπέδου δυναμικούς τύπους δεδομένων. Επέκταση : προσθέτοντάς καινούργια modules που να είναι γραμμένα σε μια γλώσσα που μεταγλωττίζεται, όπως C ή C++ Τα modules επέκτασης μπορούν να ορίσουν νέα functions και μεταβλητές και καινούργιους τύπους δεδομένων. Συγκρίνεται μ’ άλλες διερμηνευόμενες γλώσσες προγραμματισμού: Java, JavaScript, Perl, Tcl , Ruby και Smalltalk, αλλά συγκρίσεις μπορούν να γίνουν και με C++, Common Lisp και Scheme Πλατφόρμες : Windows, Linux/Unix, OS/2, Mac, Amiga… Υπάρχουν εκδόσεις πού τρέχουν σε .NET,Java virtual machine και σε κινητά Nokia Επίσημη ιστοσελίδα Python : http://www.python.org Καλύτερη scripting language 2008

Πλεονεκτήματα Διατίθεται δωρεάν και είναι Open source Υποστηρίζονται threads Υποχρεωτικά στοιχισμένος κώδικας - χρήση τεσσάρων κενών διαστημάτων (whitespace) για τον διαχωρισμό των συντακτικών δομών του προγράμματος  προγράμματα ευανάγνωστα Δεν κάνει έλεγχο τωv τύπων στα ορίσματα που περνάμε στις συναρτήσεις και μπορούμε να χρησιμοποιήσουμε την ίδια συνάρτηση για διαφορετικά ορίσματα Απλή Εύκολη στη μάθηση Ανεξάρτητη λειτουργικού συστήματος. Ο κώδικας πού γράφεται τρέχει χωρίς αλλαγές πάνω σε διάφορες πλατφόρμες

Μεταβλητές : Δεν έχουν τύπους και δεν χρειάζονται δήλωση Μπορεί να γίνει καταχώρηση σε αρκετές μεταβλητές ταυτόχρονα x, y, z = 1, 2, 3 Χρήση standard library Χρήση Exceptions αντιμετώπιση προβλημάτων που μπορούν να προκύψουν κατά την εκτέλεση του προγράμματος Ένας προγραμματιστής σε Python μπορεί να είναι πολύ πιο αποδοτικός/παραγωγικός όταν γράφει σε Python παρά πχ σε Java Dynamically-typed γλώσσα , κάθε μεταβλητή γίνεται bound μόνο σε ένα αντικείμενο  παραγωγικός προγραμματισμός

Μειονεκτήματα Πιο αργή από τη C Μεταβλητές : δεν έχουν τύπους οι μεταβλητές  δύσκολη κατανόηση προγράμματος Θεωρείται συντακτικό λάθος η λανθασμένη στοίχιση του κώδικα  δυσκολία γραφής κώδικα Δεν είναι ιδιαίτερα αποδοτική/γρήγορη σε προγράμματα πολύ απαιτιτκά σε υπολογισμό

Ποιοι οργανισμοί χρησιμοποιούν python BitTorrent Client Google Yahoo! NASA YouTube

Σχόλια για Python YouTube.com "Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, YouTube.com. Google "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc.

Εγκατάσταση Python Ανάλογα με το λειτουργικό σύστημα χρειάζεται να γίνει download μόνο το κατάλληλο binary code για την πλατφόρμα. http://www.python.org/download/ Windows Installation Δύο επιλογές: 1. Active Python το οποίο είναι ολοκληρωμένο version και περιέχει IDE with a Python-aware code editor, και κάποια Windows extensions για την Python που της επιτρέπουν να έχει complete access σε Windows-specific services, APIs, and the Windows Registry. 2. Οfficial Python installer που αποτελεί και την πιο απλή έκδοση του installer Μετά την εγκατάσταση Setting path at Windows: Στο command prompt  path %path%;C:\Python

Unix & Linux Installation Για την πλατφόρμα Unix & Linux ακολουθούμε τα βήματα για το windows, κάνοντας Download κάποια επιπρόσθετα files Εκτελούμε: ./configure script make make install Μετά την εγκατάσταση  Setting path at Unix/Linux Στο bash shell (Linux) export PATH="$PATH:/usr/local/bin/python" and press Enter

Παράδειγμα 1: Hello world σε Python #python >>> print "Hello World!!!" Hello World!!! >>> Παράδειγμα 2: #!/usr/bin/python x=“Hello World!!!” print x

Που μπορεί να χρησιμοποιηθεί η Python Web and Internet Development Database Access Desktop GUIs Network Programming (Socket) Game and 3D Graphics Software Development Scientific and Numeric Education Information Security Industry

HTTP Connection Objects Υποστηρίζει εγγενώς τα πρωτόκολλα HTTP, POP3,SMTP, FTP και Telnet. import httplib >>> conn = httplib.HTTPConnection("www.python.org") >>> conn.request("GET", "/index.html") >>> r1 = conn.getresponse() >>> print r1.status, r1.reason 200 OK >>> data1 = r1.read() >>> conn.request("GET", "/parrot.spam") >>> r2 = conn.getresponse() >>> print r2.status, r2.reason 404 Not Found >>> data2 = r2.read() >>> conn.close()

Υποστήριξη threads Output: import thread #κλήση της βιβλιοθήκης thread import threading import time def run_thread (threadname, count, sleeptime): """This is the thread function to be invoked.""" print "I am thread", threadname for i in range (1, count + 1): print "%s: count = %s" % (threadname, i) time.sleep(sleeptime) thread.interrupt_main() if __name__ == "__main__": thread.start_new_thread(run_thread, ("Thread1", 5, 1)) try: while 1: pass except: print "Thread1 exited...." Output: I am thread Thread1 Thread1: count = 1 Thread1: count = 2 Thread1: count = 3 Thread1: count = 4 Thread1: count = 5 Thread1 exited....

Database Access Output: Database version : 5.0.45 Επιτρέπει την σύνδεση και επικοινωνία με βάσεις δεδομένων MySQLdb : interface για σύνδεση στο MySQL database server #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect( host = "localhost", user = "testuser", passwd ="test123", db ="TESTDB") # prepare a cursor object using cursor() method cursor = db.cursor() # execute SQL query using execute() method. cursor.execute("SELECT VERSION()") # Fetch a single row using fetchone() method. data = cursor.fetchone() print "Database version : %s " % data # disconnect from server db.close() Output: Database version : 5.0.45

Python - GUI Programming (Tkinter) Δημιουργία GUI applications εύκολα και γρήγορα. Tkinter  standard GUI library for Python. Import the Tkinter module. Create the GUI application main window. #!/usr/bin/python import Tkinter top = Tkinter.Tk() # Code to add widgets will go here... top.mainloop() Output:

Υλοποίηση Προγράμματος Web Crawler Ανάκτηση urls από μία δοσμένη ιστοσελίδα Κατά πλάτος διερεύνηση(Breadth First Traversal) του γράφου που εκφράζει τη δοσμένη ιστοσελίδα Επίσκεψη ιστοσελίδων επίπεδο-επίπεδο με βάση το δοσμένο βάθος Τύπωμα ιστοσελίδων που ανακτήθηκαν

Ευκολίες/Δυσκολίες Δυσκολίες Πρώτη επαφή με γλώσσα – Δυσκολία υλοποίησης κώδικα Δυσκολία υλοποίησης κώδικα λόγω στοίχισης Αντικειμενοστρεφής γλώσσα Ευκολίες Χρήση έτοιμων συναρτήσεων Online documentation για εύρεση έτοιμων βιβλιοθηκών

Κώδικας import sys import re import urllib2 import urlparse import optparse import htmllib, formatter import time from cStringIO import StringIO def parse_options(): parser = optparse.OptionParser() parser.add_option("-d", "--depth", action="store", type="int", default=30, dest="depth", help="Maximum depth to traverse") opts, args = parser.parse_args() if len(args) < 1: parser.print_help() raise SystemExit, 1 return opts, args

def log_stdout(msg): print msg def get_page(url, log): try: page = urllib2.urlopen(url) except urllib2.URLError: log("Error retrieving: " + url) return '' body = page.read() page.close() return body def find_links(html): writer = formatter.DumbWriter(StringIO()) f = formatter.AbstractFormatter(writer) parser = htmllib.HTMLParser(f) parser.feed(html) parser.close() return parser.anchorlist

class Spider: def __init__(self,startURL, log=None): self.URLs = set() self.URLs.add(startURL) self.include = startURL self._links_to_p = set() if log is None: self.log = log_stdout else: self.log = log

def run(self,urls): for url in urls: print url self.process_page(url) def process_page(self, url): html = get_page(url, self.log) self.URLs.add(url) for link in find_links(html): link = urlparse.urljoin(url, link) if link[-1] == '/': if link not in self.URLs: self.URLs.add(link) self._links_to_p.add(link) else: temp = link.replace('/', '.') if temp[-5:] == ".html" or temp[-4:] == ".htm": continue

def clear(url): while not len(url) == 0: url.pop() def main(): opts, args = parse_options() depth = opts.depth startURL = args[0] spider = Spider(startURL) count = 0 urls = set() urls.add(startURL) sTime = time.time() while count <= depth: spider.run(urls) clear(urls) while not len(spider._links_to_p) == 0: urls.add(spider._links_to_p.pop()) count=count+1 eTime = time.time() tTime = eTime - sTime print "time taken %f" % tTime if __name__ == "__main__": main()

Στατιστικά Κώδικας: 113 γραμμές Χρόνος Υλοποίησης: 24 ώρες Χρόνος Εκτέλεσης: 5.156 sec

Screenshot

Συμπεράσματα Μπορεί να χρησιμοποιηθεί για μεγάλες εφαρμογές αφού υποστηρίζει modules, classes και είναι ευανάγνωστη Η σύνταξή της είναι πολύ απλή άρα μπορεί κάποιος να προσαρμοστεί εύκολα Έχει αρκετές ιδιοτροπίες, όπως την στοίχισης της Μπορεί να συνδέσει κώδικες από διαφορετικές γλώσσες Μπορεί να αντικαταστήσει οποιαδήποτε γλώσσα προγραμματισμού, εάν η απόδοση δεν έχει σημασία

Πηγές http://docs.python.org/ www.tutorialspoint.com/ http://docs.python.org/tutorial/ http://spinning-yarns.org/michael/misc/python-intro.pdf http://www.stat.ucla.edu/~rosario/classes/07F/202a/python/index.html http://www.ferg.org/projects/python_java_side-by-side.html#typing http://www.daniweb.com/forums/thread20774.html en.wikipedia.org Learning Python‎ Mark Lutz - 2007