Python è un linguaggio per la programmazione e lo scripting implementanto sotto licenza Open Source; una delle sue caratteristiche più rilevanti è quella di essere multi-purpose e multi-paradigma, questo significa che potrà essere utilizzato per scopi tra loro differenti e sfruttando diversi approcci per lo sviluppo delle applicazioni basate su di esso.
Per quanto riguarda gli ambiti di utilizzo di Python, lo si potrà impiegare sia per la creazione di software destinati all'installazione su terminale che per la realizzazione di soluzioni per il Web; dal punto di vista dei paradigmi di riferimento, esso si basa innanzitutto sulla programmazione orientata agli oggetti (paradigma Object Oriented), ma prevede anche costrutti derivanti dall'approccio funzionale e da quello imperativo.
Python è inoltre un linguaggio multi-piattaforma, è stato infatti concepito per poter essere impiegato su tutti i sistemi operativi più diffusi, Windows, distribuzioni basate sul Kernel Linux e (Mac) OS X. La sintassi di questo linguaggio, pensata per essere il più possibile essenziale, ricorda in parte quella di una soluzione come Perl, ma per la sua concezione sono stati utilizzati anche costrutti mediati da C, C++ e Java; da parte sua, invece, Python ha influenzato in vario modo la progettazione di altri linguaggi ampiamente utilzzati, e spesso destinati a contesti differenti, come Java, Ruby e addirittura Swift, strumento creato di recente da Apple per la creazione di applicazioni destinate a iOS e il già citato (Mac) OS X.
Python mette a disposizione dello sviluppatore un sistema automatizzato per la gestione della memoria, ciò limita il verificarsi di fenomeni legati all'overhead, con un conseguente risparmio sulle richieste di risorse accessorie, e il verificarsi di memory leak (o fuoriuscite di memoria) per evitare livelli di consumo eccessivi nell'esecuzione degli script. A ciò si aggiunga la presenza di una libreria integrata concepita per migliorare la produttività e un meccanismo avanzato per la gestione delle eccezioni, cioè gli esiti imprevisti, in alcuni casi veri e propri errori, derivanti dall'esecuzione delle applicazioni.
A differenza di alcune delle alternative disponibili, Python si caratterizza inoltre per il fatto di essere un linguaggio semplice da imparare permettendo anche agli sviluppatori alle prime armi di diventare rapidamente operativi per l'implementazione di applicazioni basilari; ciò è dovuto al fatto che tale strumento è dotato di una sintassi particolarmente intuitiva e il codice sorgente prodotto attraverso di esso risulterà facilmente leggibile. Questo è uno dei motivi per cui Python risulta particolarmente adatto per lo sviluppo di progetti in ambito collaborativo.
Guido van Rossum, lo sviluppatore olandese che all'inizio degli anni '90 creò il linguaggio Python, scelse questo nome non ispirandosi alla nota specie di rettili, ma al gruppo comico britannico Monty Python e alla loro trasmissione televisiva, il Monty Python's Flying Circus; la sua idea era quella di offrire uno strumento modulare che unisse la semplicità dei costrutti alla possibilità di realizzare applicazioni anche molto complesse. La gratuità del linguaggio, unita alla sua licenza permissiva e alla robustezza sintattiche ottenuta rinunciando alle macchinosità , hanno reso Python uno strumento utilizzato universalmente; siti Web ad altissimo traffico come per esempio YouTube, sono stati realizzati adottando Python.
Ma Python si caratterizza anche per essere un linguaggio pseudocompilato, questo significa che ad occuparsi dell'analisi (parsing) dei codici sarà un apposito interprete messo a disposizione nativamente dal linguaggio; tale interprete dovrà quindi verificare la correttezza sintattica dei sorgenti ed eseguirli. In sostanza Python non da vita a dinamiche presenti in altri linguaggi, si pensi per esempio a C, per i quali viene richiesta una compilazione del codice per la generazione di file eseguibili. Tra i vantaggi della precompilazione vi è sicuramente la portabilità , infatti un sorgente scritto su una piattaforma (si ipotizzi Windows) potrà essere successivamente intepretato su un sistema operativo differente (ad esempio una distribuzione Linux) con l'unico vincolo derivante dalla versione utilizzata del linguaggio.