Come configurare smartphone e PC. Portale informativo
  • casa
  • Sicurezza
  • Comandi Python con spiegazioni. Nozioni di base su Python in breve

Comandi Python con spiegazioni. Nozioni di base su Python in breve

(Traduzione)

Sul sito Poromenos Stuff è stato pubblicato un articolo in cui, in forma concisa, si parlano delle basi del linguaggio Python. Vi propongo una traduzione di questo articolo. La traduzione non è letterale. Ho cercato di spiegarne più in dettaglio alcuni punti che potrebbero non essere chiari.

Se hai intenzione di imparare il linguaggio Python, ma non riesci a trovare una guida adatta, allora questo articolo ti sarà molto utile! In breve tempo potrai conoscere le basi del linguaggio Python. Sebbene questo articolo spesso si basi sul fatto che tu abbia già esperienza di programmazione, spero che anche i principianti trovino utile questo materiale. Leggi attentamente ogni paragrafo. A causa della condensazione del materiale, alcuni argomenti vengono trattati superficialmente, ma contengono tutto il materiale necessario.

Proprietà di base

Python non richiede la dichiarazione esplicita delle variabili ed è un linguaggio orientato agli oggetti con distinzione tra maiuscole e minuscole (la variabile var non è equivalente a Var o VAR - sono tre variabili diverse).

Sintassi

Innanzitutto vale la pena notare una caratteristica interessante di Python. Non contiene invece parentesi operatore (inizia..fine in pascal o (..) in C). i blocchi sono dentellati: spazi o tabulazioni e l'inserimento di un blocco di istruzioni avviene con i due punti. I commenti su riga singola iniziano con il segno cancelletto "#", i commenti su più righe iniziano e terminano con tre virgolette doppie """".

Per assegnare un valore a una variabile, viene utilizzato il segno "=" e per il confronto viene utilizzato "==". Per aumentare il valore di una variabile o aggiungere a una stringa, utilizzare l'operatore "+=" e "-=" per diminuirlo. Tutte queste operazioni possono interagire con la maggior parte dei tipi, comprese le stringhe. Per esempio

>>> miavar = 3

>>> miavar += 2

>>> miavar -= 1

"""Questo è un commento su più righe

Le stringhe racchiuse tra tre virgolette doppie vengono ignorate"""

>>> miastringa = "Ciao"

>>> miastringa += "mondo".

>>>stampa la mia stringa

Ciao mondo.

# La riga successiva cambia

I valori delle variabili vengono scambiati. (Solo una riga!)

>>> miavar, miastringa = miastringa, miavar

Strutture dati

Python contiene strutture dati come liste, tuple e dizionari). Gli elenchi sono simili agli array unidimensionali (ma puoi utilizzare un elenco contenente elenchi - un array multidimensionale), le tuple sono elenchi immutabili, anche i dizionari sono elenchi, ma gli indici possono essere di qualsiasi tipo, non solo numerici. Gli "array" in Python possono contenere dati di qualsiasi tipo, ovvero un array può contenere numeri, stringhe e altri tipi di dati. Gli array iniziano dall'indice 0 e l'ultimo elemento è accessibile dall'indice -1. È possibile assegnare funzioni alle variabili e utilizzarle di conseguenza.

>>> sample = , ("a", "tupla")] #La lista consiste di un numero intero, un'altra lista e una tupla

>>> mialista = ["Voce elenco 1", 2, 3.14] #Questa lista contiene una stringa, un numero intero e una frazione

>>> mylist = "Elenca nuovamente l'elemento 1" #Cambia il primo (zero) elemento del foglio mylist

>>> mialista[-1] = 3.14 #Cambia l'ultimo elemento del foglio

>>> mydict = ("Chiave 1": "Valore 1", 2: 3, "pi": 3.14) #Crea un dizionario con indici numerici e interi

>>> mydict["pi"] = 3.15 #Cambia l'elemento del dizionario sotto l'indice "pi".

>>> miatupla = (1, 2, 3) #Specifica una tupla

>>> miafunzione = len #Python ti permette di dichiarare i sinonimi delle funzioni in questo modo

>>> print miafunzione(mialista)

È possibile utilizzare parte di un array specificando il primo e l'ultimo indice separati da due punti ":". In questo caso riceverai parte dell'array, dal primo indice al secondo, escluso. Se il primo elemento non è specificato, il conteggio inizia dall'inizio dell'array e se l'ultimo elemento non è specificato, l'array viene letto fino all'ultimo elemento. I valori negativi determinano la posizione dell'elemento dalla fine. Per esempio:

>>> mialista = ["Voce elenco 1", 2, 3.14]

>>> print mialista[:] #Vengono letti tutti gli elementi dell'array

["Voce elenco 1", 2, 3.1400000000000001]

>>> print mialista #Vengono letti lo zero e il primo elemento dell'array.

["Voce elenco 1", 2]

>>> print mialista[-3:-1] #Vengono letti gli elementi da zero (-3) al secondo (-1) (non inclusi)

["Voce elenco 1", 2]

>>> print mylist #Gli elementi vengono letti dal primo all'ultimo

stringhe

Stringhe in Python separati da virgolette doppie """ o virgolette singole """. Le virgolette doppie possono contenere virgolette singole o viceversa. Ad esempio, la riga "Ha detto ciao!" verrà visualizzato come "Ha detto ciao!". Se è necessario utilizzare una stringa di più righe, questa riga deve iniziare e terminare con tre virgolette doppie """". È possibile sostituire elementi da una tupla o da un dizionario nel modello di stringa Il segno di percentuale "%" tra la stringa e la tupla sostituisce i caratteri nella stringa “%s” con un elemento tupla. I dizionari consentono di inserire un elemento in un dato indice in una stringa. Per fare ciò, utilizzare la costruzione “%(index)s” nella stringa. In questo caso, al posto di “%(index)s” verrà sostituito il valore del dizionario in corrispondenza dell'indice specificato.

>>>print "Nome: %s\nNumero: %s\nStringa: %s" % (miaclasse.nome, 3, 3 * "-")

Nome: Poromeno

Numero 3

Corda: ---

strString = """Questo testo si trova

su più righe"""

>>> print "Questo %(verbo) è un %(sostantivo)s." %("sostantivo": "prova", "verbo": "è")

Questa è una prova.

Operatori

Le istruzioni while, if e for costituiscono operatori di spostamento. Non esiste un equivalente di un'istruzione select, quindi dovrai accontentarti di if . L'istruzione for fa un confronto variabile e lista. Per ottenere un elenco di cifre fino a un numero - utilizzare la funzione range( ). Ecco un esempio di utilizzo degli operatori

rangelist = range(10) #Ottiene un elenco di dieci cifre (da 0 a 9)

>>> stampa l'elenco degli intervalli

for number in rangelist: #Finché la variabile number (che viene incrementata di uno ogni volta) è nell'elenco...

# Controlla se la variabile è inclusa

# numeri in una tupla di numeri (3, 4, 7, 9)

Se il numero è nella tupla (3, 4, 7, 9): #Se il numero è nella tupla (3, 4, 7, 9)...

# L'operazione "break" fornisce

# esce dal ciclo in qualsiasi momento

Rottura

Altro:

# "continua" esegue lo "scorrimento"

# ciclo continuo. Ciò non è richiesto qui, poiché dopo questa operazione

# in ogni caso il programma torna ad elaborare il loop

Continua

altro:

# "altro" è facoltativo. La condizione è soddisfatta

# se il ciclo non è stato interrotto con "break".

Passa # Non fare nulla

se rangelist == 2:

Print "Il secondo elemento (le liste sono a base 0) è 2"

lista di intervallo elif == 3:

Print "Il secondo elemento (le liste sono a base 0) è 3"

altro:

Stampa "Non lo so"

while rangelist == 1:

Passaggio

Funzioni

Per dichiarare una funzione, utilizzare parola chiave "def". Gli argomenti della funzione vengono forniti tra parentesi dopo il nome della funzione. È possibile specificare argomenti facoltativi, assegnando loro un valore predefinito. Le funzioni possono restituire tuple, nel qual caso è necessario scrivere i valori restituiti separati da virgole. La parola chiave "lambda" viene utilizzata per dichiarare funzioni elementari.

# arg2 e arg3 sono argomenti facoltativi, assumono il valore dichiarato per impostazione predefinita,

# a meno che non si dia loro un valore diverso quando si chiama la funzione.

def miafunzione(arg1, arg2 = 100, arg3 = "test"):

Restituisce arg3, arg2, arg1

#La funzione viene chiamata con il valore del primo argomento - "Argomento 1", il secondo - per impostazione predefinita e il terzo - "Argomento con nome".

>>>ret1, ret2, ret3 = miafunzione("Argomento 1", arg3 = "Argomento con nome")

# ret1, ret2 e ret3 assumono rispettivamente i valori "Argomento con nome", 100, "Argomento 1"

>>> stampa ret1, ret2, ret3

Argomento denominato 100 Argomento 1

# Quanto segue è equivalente a def f(x): return x + 1

varfunzione = lambda x: x + 1

>>> print varfunzione(1)

Classi

Il linguaggio Python è limitato all'ereditarietà multipla nelle classi. Le variabili interne e i metodi delle classi interne iniziano con due caratteri di sottolineatura "__" (ad esempio "__myprivatevar"). Possiamo anche assegnare un valore a una variabile di classe dall'esterno. Esempio:

classe La mia classe:

Comune = 10

def __init__(self):

Self.miavariabile = 3

Def miafunzione(self, arg1, arg2):

Restituisce self.miavariabile

# Qui abbiamo dichiarato la classe Myclass. La funzione __init__ viene chiamata automaticamente quando le classi vengono inizializzate.

>>> classinstance = Myclass() # Abbiamo inizializzato la classe e myvariable ha il valore 3 come indicato nel metodo di inizializzazione

>>> classinstance.myfunction(1, 2) #Il metodo myfunction della classe Myclass restituisce il valore della variabile myvariable

# La variabile comune è dichiarata in tutte le classi

>>> istanzaclassi2 = Miaclasse()

>>> istanzaclassi.common

>>> istanzaclassi2.common

# Quindi, se cambiamo il suo valore nella classe Myclass, cambierà

# e i suoi valori negli oggetti inizializzati dalla classe Myclass

>>> Miaclasse.common = 30

>>> istanzaclassi.common

>>> istanzaclassi2.common

# E qui non modifichiamo la variabile della classe. Invece di questo

# lo dichiariamo in un oggetto e gli assegniamo un nuovo valore

>>> istanzaclassi.common = 10

>>> istanzaclassi.common

>>> istanzaclassi2.common

>>> Miaclasse.common = 50

# Ora la modifica della variabile della classe non avrà alcun effetto

# oggetti variabili di questa classe

>>> istanzaclassi.common

>>> istanzaclassi2.common

# La classe seguente è una discendente della classe Myclass

# ereditando le sue proprietà e metodi, chi può la classe

# eredita da diverse classi, in questo caso la voce

# così: class Altraclasse(Miaclasse1, Miaclasse2, MiaclassEN)

classe Altraclasse(La miaclasse):

Def __init__(self, arg1):

Self.miavariabile = 3

Stampa arg1

>>> istanza di classe = Altraclasse("ciao")

Ciao

>>> istanzaclassi.miafunzione(1, 2)

# Questa classe non ha la proprietà test, ma noi sì

# dichiara tale variabile per un oggetto. Inoltre

# questa variabile sarà membro solo dell'istanza di classe.

>>> istanza.test = 10

>>> istanzaclassi.test

Eccezioni

Le eccezioni in Python hanno una struttura try -eccetto:

def una funzione():

Tentativo:

# La divisione per zero causa un errore

10 / 0

Tranne ZeroDivisionError:

# Ma il programma non "Esegue un'operazione illegale"

# E gestisce il blocco di eccezioni corrispondente all'errore "ZeroDivisionError".

Stampa "Spiacenti, non valido."

>>> fneccetto()

Spiacenti, non valido.

Importare

Le librerie esterne possono essere collegate utilizzando la procedura “import”, dove è il nome della libreria che si sta collegando. Puoi anche utilizzare il comando "from import" in modo da poter utilizzare una funzione dalla libreria:

import random #Importa la libreria “random”.

da time importa orologio #E allo stesso tempo la funzione "orologio" dalla libreria "ora".

randomint = random.randint(1, 100)

>>>stampa randomint

Lavorare con il file system

Python ha molte librerie integrate. In questo esempio proveremo a salvare la struttura di una lista in un file binario, a leggerla e a salvare la stringa in un file di testo. Per trasformare la struttura dati utilizzeremo la libreria standard "pickle":

importare sottaceti

mialista = ["Questo", "è", 4, 13327]

# Aprire il file C:\binary.dat per la scrittura. simbolo "r".

# impedisce la sostituzione di caratteri speciali (come \n, \t, \b, ecc.).

miofile = file(r"C:\binary.dat", "w")

pickle.dump(mialista, miofile)

miofile.chiudi()

miofile = file(r"C:\testo.txt", "w")

myfile.write("Questa è una stringa di esempio")

miofile.chiudi()

miofile = file(r"C:\testo.txt")

>>> stampa miofile.leggi()

"Questa è una stringa di esempio"

miofile.chiudi()

# Apri il file per la lettura

miofile = file(r"C:\binary.dat")

lista caricata = pickle.load(miofile)

miofile.chiudi()

>>> stampa la lista caricata

["Questo", "è", 4, 13327]

Peculiarità

  • Le condizioni possono essere combinate. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Utilizzare l'operatore "del" per cancellare variabili o elementi di array.
  • Python offre grandi opportunità per lavorare con le liste. È possibile utilizzare gli operatori di dichiarazione della struttura dell'elenco. L'operatore for consente di specificare gli elementi dell'elenco in una sequenza specifica e l'operatore if consente di selezionare gli elementi in base a una condizione.

>>> lst1 =

>>> lst2 =

>>> stampa

>>> stampa

# L'operatore "qualsiasi" restituisce vero se sebbene

# se una delle condizioni in esso contenute è soddisfatta.

>>> qualsiasi(i % 3 per i in )

VERO

# La seguente procedura conta il numero

# elementi corrispondenti nell'elenco

>>> somma(1 per i in se i == 3)

>>> del lst1

>>> stampa lst1

>>> del lst1

  • Variabili globali sono dichiarate funzioni esterne e possono essere lette senza alcuna dichiarazione. Ma se devi cambiare il valore di una variabile globale da una funzione, allora devi dichiararlo all'inizio della funzione con la parola chiave "global", se non lo fai, allora Python dichiarerà una variabile che è accessibile solo a quella funzione.

numero = 5

def miafunzione():

# Uscite 5

Stampare il numero

def un'altrafunzione():

# Questo genera un'eccezione perché la variabile globale

# non è stato chiamato da una funzione. Python in questo caso crea

# variabile con lo stesso nome all'interno di questa funzione e accessibile

# solo per gli operatori di questa funzione.

Stampare il numero

Numero = 3

def ancoraun'altrafunzione():

Numero globale

# E solo da questa funzione viene modificato il valore della variabile.

Numero = 3

Epilogo

Naturalmente, questo articolo non descrive tutte le funzionalità di Python. Spero che questo articolo ti possa aiutare se vuoi continuare a imparare questo linguaggio di programmazione.

Vantaggi di Python

  • La velocità di esecuzione dei programmi scritti in Python è molto elevata. Ciò è dovuto al fatto che le principali librerie Python
    sono scritti in C++ e richiedono meno tempo per completare le attività rispetto ad altri linguaggi di alto livello.
  • Per questo motivo, puoi scrivere i tuoi moduli Python in C o C++
  • Nelle librerie Python standard puoi trovare strumenti per lavorare con e-mail, protocolli
    Internet, FTP, HTTP, database, ecc.
  • Gli script scritti utilizzando Python vengono eseguiti sulla maggior parte dei sistemi operativi moderni. Questa portabilità consente di utilizzare Python in un'ampia varietà di aree.
  • Python è adatto a qualsiasi soluzione di programmazione, siano essi programmi per ufficio, applicazioni web, applicazioni GUI, ecc.
  • Migliaia di appassionati da tutto il mondo hanno lavorato allo sviluppo di Python. Il supporto per le tecnologie moderne nelle librerie standard può essere attribuito al fatto che Python era aperto a tutti.

Passiamo alla parte teorica e pratica e cominciamo con cos'è un interprete.

Interprete

Interpreteè un programma che esegue altri programmi. Quando scrivi un programma in Python, l'interprete legge il tuo programma ed esegue le istruzioni in esso contenute. In realtà, l'interprete è uno strato di logica del programma tra il codice del programma e l'hardware del computer.

A seconda della versione di Python che stai utilizzando, l'interprete stesso può essere implementato come un programma C, come un insieme di classi Java o in qualche altra forma, ma ne parleremo più avanti.

Esecuzione di uno script nella console

Eseguiamo l'interprete nella console:

Ora è in attesa dell'input del comando, inserisci lì la seguente istruzione:

Stampa "ciao mondo!"

sì, il nostro primo programma! :D

Esecuzione di uno script da un file

Crea un file "test.py", con il contenuto:

# stampa "ciao mondo" stampa "ciao mondo" # stampa 2 alla potenza di 10 stampa 2 ** 10

ed esegui questo file:

# python /percorso/del/test.py

Compilazione dinamica e bytecode

Dopo aver eseguito lo script, viene prima compilato l'origine dello script in bytecode per la macchina virtuale. Compilazioneè semplicemente un passaggio di traduzione e il bytecode è una rappresentazione di basso livello, indipendente dalla piattaforma, del testo sorgente del programma. Python traduce ogni istruzione nel codice sorgente dello script in gruppi di istruzioni bytecode per migliorare la velocità di esecuzione del programma perché il bytecode viene eseguito molto più velocemente. Dopo la compilazione nel bytecode, viene creato un file con l'estensione ".pyc" accanto al testo dello script originale.

La prossima volta che eseguirai il tuo programma, l'interprete ignorerà la fase di compilazione e produrrà un file compilato con l'estensione ".pyc" per l'esecuzione. Tuttavia, se modifichi il codice sorgente del tuo programma, il passaggio di compilazione in bytecode verrà ripetuto, poiché Python tiene automaticamente traccia della data di modifica del file del codice sorgente.

Se Python non è in grado di scrivere un file bytecode, ad esempio a causa della mancanza di permessi di scrittura su disco, il programma non verrà influenzato, il bytecode verrà semplicemente raccolto in memoria e rimosso da lì all'uscita del programma.

Macchina virtuale Python (PVM)

Al termine del processo di compilazione, il bytecode viene passato a un meccanismo chiamato macchina virtuale, che eseguirà le istruzioni dal bytecode. Macchina virtualeè un meccanismo runtime, è sempre presente nel sistema Python ed è un componente estremo del sistema chiamato “Python Interpreter”.

Per rafforzare ciò che abbiamo imparato, chiariamo ancora una volta la situazione: la compilazione in bytecode viene eseguita automaticamente e PVM è solo una parte del sistema Python che hai installato insieme all'interprete e al compilatore. Tutto avviene in modo trasparente per il programmatore e non è necessario eseguire queste operazioni manualmente.

Prestazione

I programmatori con esperienza in linguaggi come C e C++ potrebbero notare alcune differenze nel modello di esecuzione di Python. Il primo è che non esiste alcun passaggio di compilazione o chiamata all'utilità "make" che i programmi Python possono essere eseguiti immediatamente dopo aver scritto il codice sorgente; La seconda differenza è che il bytecode non è un codice macchina binario (ad esempio, istruzioni per un microprocessore Intel), ma una rappresentazione interna di un programma Python.

Per questi motivi, i programmi in Python non possono essere eseguiti così velocemente come in C/C++. Le istruzioni vengono attraversate dal sistema virtuale, non dal microprocessore, e per eseguire il bytecode è necessaria un'interpretazione aggiuntiva, le cui istruzioni richiedono più tempo delle istruzioni della macchina del microprocessore.

D'altro canto, a differenza degli interpreti tradizionali, ad esempio in PHP, esiste una fase di compilazione aggiuntiva: l'interprete non deve analizzare ogni volta il testo sorgente del programma.

Di conseguenza, le prestazioni di Python si collocano tra la compilazione tradizionale e l'interpretazione tradizionale dei linguaggi di programmazione.

Implementazioni alternative di Python

Quanto detto sopra riguardo al compilatore e alla macchina virtuale è tipico dell'implementazione standard di Python, la cosiddetta CPython (implementazione in ANSI C). Tuttavia, esistono anche implementazioni alternative come Jython e IronPython, di cui parleremo ora.

Questa è l'implementazione standard e originale di Python, così chiamata perché scritta in ANSI C. Questo è ciò che abbiamo installato quando abbiamo selezionato il pacchetto ActivePython o installato da FreeBSD porti. Poiché si tratta di un'implementazione di riferimento, generalmente lo è funziona più velocemente, in modo più coerente e migliore rispetto a implementazioni alternative.

Jython

Nome originale JPython, scopo principale - stretta integrazione con il linguaggio di programmazione Java. L'implementazione Jython è costituita da classi Java che compilano il codice Python in bytecode Java e quindi trasmettono il bytecode risultante Macchina virtuale Java (JVM).

L'obiettivo di Jython è consentire ai programmi Python di controllare le applicazioni Java, proprio come CPython può controllare i componenti C/C++. Questa implementazione ha una perfetta integrazione con Java. Poiché il codice Python viene tradotto in bytecode Java, in fase di runtime si comporta esattamente come un vero programma Java. I programmi Jython possono agire come applet e servlet, creare un'interfaccia grafica utilizzando meccanismi Java, ecc. Inoltre, Jython fornisce supporto per la possibilità di importare e utilizzare classi Java nel codice Python.

Tuttavia, poiché l'implementazione Jython è più lenta e meno robusta di CPython, è interessante per gli sviluppatori Java che necessitano di un linguaggio di scripting come interfaccia per il codice Java.

L'implementazione ha lo scopo di fornire l'integrazione dei programmi Python con applicazioni create per essere eseguite su Microsoft .NET Framework del sistema operativo Windows, nonché su Mono, l'equivalente open source per Linux. Il framework .NET e il runtime C# sono progettati per consentire l'interoperabilità tra oggetti software, indipendentemente dal linguaggio di programmazione utilizzato, nello spirito del precedente modello COM di Microsoft.

IronPython consente ai programmi Python di agire sia come componenti client che come componenti server accessibili da altri linguaggi di programmazione .NET. Perché il lo sviluppo è effettuato da Microsoft, ci si aspetterebbe, tra le altre cose, significative ottimizzazioni delle prestazioni da IronPython.

Strumenti di ottimizzazione della velocità di esecuzione

Esistono altre implementazioni, incluso un compilatore dinamico Psicopatico e il traduttore Shedskin C++, che tentano di ottimizzare il modello di esecuzione sottostante.

Compilatore dinamico Psycho

Sistema psicologicoè un componente che estende il modello di esecuzione del bytecode, consentendo ai programmi di essere eseguiti più velocemente. Psicopaticoè un'estensione PVM, che raccoglie e utilizza informazioni sul tipo per tradurre parti del bytecode di un programma in un vero codice macchina binario, che viene eseguito molto più velocemente. Questa traduzione non richiede modifiche al codice sorgente o compilazione aggiuntiva durante lo sviluppo.

Durante l'esecuzione del programma, Psyco raccoglie informazioni sui tipi di oggetto e queste informazioni vengono quindi utilizzate per generare un codice macchina altamente efficiente ottimizzato per quel tipo di oggetto. Il codice macchina prodotto sostituisce quindi le corrispondenti sezioni del bytecode, aumentando così la velocità di esecuzione.

Idealmente, alcune sezioni del codice del programma sotto il controllo di Psyco può essere eseguito velocemente quanto il codice C compilato.

Psyco fornisce aumenti di velocità che vanno da 2 a 100 volte, ma in genere 4 volte, quando si utilizza un interprete Python non modificato. L'unico svantaggio di Psyco è che attualmente è in grado solo di generare codice macchina per l'architettura Intel x86.

Psyco non viene fornito di serie; deve essere scaricato e installato separatamente. C'è anche un progetto PyPy, che rappresenta un tentativo di riscrittura PVM per ottimizzare il codice come in Psicopatico, progetto PyPy assorbirà una parte maggiore del progetto Psicopatico.

Traduttore Shedskin C++

Pelle di peloè un sistema che converte il codice sorgente Python in codice sorgente C++, che può poi essere compilato in codice macchina. Inoltre, il sistema implementa un approccio indipendente dalla piattaforma per l'esecuzione del codice Python.

Binari congelati

A volte è necessario creare file eseguibili indipendenti dai tuoi programmi Python. Ciò è necessario piuttosto per il confezionamento e la distribuzione dei programmi.

I file binari fissi combinano il bytecode dei programmi, i PVM e i file di supporto necessari ai programmi in un unico file di pacchetto. Il risultato è un singolo file eseguibile, ad esempio un file con estensione ".exe" per Windows.

Oggi esistono tre strumenti principali per creare "binari congelati":

  • py2exe- può creare programmi standalone per Windows che utilizzano le librerie Tkinter, PMW, wxPython e PyGTK per creare un'interfaccia grafica, programmi che utilizzano il software di creazione di giochi PyGame, programmi client win32com e molti altri;
  • PyInstaller- assomiglia a py2exe, ma funziona anche su Linux e UNIX ed è in grado di produrre eseguibili autoinstallanti;
  • congelare- versione originale.

Devi scaricare questi strumenti separatamente da Python, sono gratuiti.

I file binari fissi sono piuttosto grandi perché contengono PVM, ma per gli standard moderni non sono ancora insolitamente grandi. Poiché l'interprete Python è integrato direttamente nei file binari fissi, installarlo non è un requisito per eseguire i programmi sul lato ricevente.

Riepilogo

Per oggi è tutto, nel prossimo articolo parlerò dei tipi di dati standard in Python e negli articoli successivi esamineremo ciascun tipo separatamente, nonché le funzioni e gli operatori per lavorare con questi tipi.

Programmazione Python

Parte 1. Capacità linguistiche e sintassi di base

Serie di contenuti:

Vale la pena imparare Python?

Python è uno dei linguaggi di programmazione moderni più popolari. È adatto a risolvere una varietà di problemi e offre le stesse funzionalità di altri linguaggi di programmazione: dinamismo, supporto OOP e multipiattaforma. Lo sviluppo di Python è iniziato da Guido Van Rossum a metà degli anni '90, quindi ormai è stato possibile sbarazzarsi delle malattie "infantili" standard, sviluppare in modo significativo gli aspetti migliori del linguaggio e attirare molti programmatori che utilizzano Python per implementare i loro progetti.

Molti programmatori ritengono che sia necessario apprendere solo linguaggi di programmazione “classici” come Java o C++, poiché comunque altri linguaggi non saranno in grado di fornire le stesse funzionalità. Tuttavia, recentemente è emersa la convinzione che sia consigliabile per un programmatore conoscere più di una lingua, poiché ciò amplia i suoi orizzonti, permettendogli di risolvere i problemi in modo più creativo e aumentando la sua competitività nel mercato del lavoro.

Imparare perfettamente due linguaggi come Java e C++ è abbastanza difficile e richiederebbe molto tempo; inoltre molti aspetti di queste lingue sono in contraddizione tra loro. Allo stesso tempo, Python è ideale per il ruolo di una seconda lingua, poiché viene immediatamente assorbito grazie alla conoscenza già esistente di OOP e al fatto che le sue capacità non sono in conflitto, ma completano l'esperienza acquisita lavorando con un'altra programmazione lingua.

Se un programmatore ha appena iniziato nel campo dello sviluppo software, allora Python sarà un linguaggio di programmazione “introduttivo” ideale. Grazie alla sua brevità, ti consentirà di padroneggiare rapidamente la sintassi del linguaggio e l'assenza di "eredità" sotto forma di assiomi formati nel corso di molti anni ti aiuterà a padroneggiare rapidamente l'OOP. A causa di questi fattori, la curva di apprendimento di Python sarà piuttosto breve e il programmatore sarà in grado di passare da esempi didattici a progetti commerciali.

Pertanto, non importa chi sia il lettore di questo articolo: un programmatore esperto o un principiante nel campo dello sviluppo di software, la risposta alla domanda, che è il titolo di questa sezione, dovrebbe essere un sonoro "sì".

Questa serie di articoli è progettata per aiutarti a superare con successo la curva di apprendimento fornendo informazioni dai principi più basilari della lingua alle sue capacità avanzate di integrazione con altre tecnologie. Il primo articolo tratterà le funzionalità di base e la sintassi di Python. Di seguito esamineremo gli aspetti più avanzati del lavoro con questo popolare linguaggio, in particolare la programmazione orientata agli oggetti in Python.

Architettura Python

Qualsiasi linguaggio, sia di programmazione che di comunicazione, è costituito da almeno due parti: vocabolario e sintassi. Il linguaggio Python è organizzato esattamente allo stesso modo, fornendo una sintassi per formare espressioni che formano programmi eseguibili e un vocabolario: un insieme di funzionalità sotto forma di libreria standard e plug-in.

Come accennato, la sintassi di Python è abbastanza concisa, soprattutto se paragonata a Java o C++. Da un lato questo è positivo, poiché quanto più semplice è la sintassi, tanto più facile sarà imparare e meno errori si possono commettere durante l'utilizzo. Tuttavia, tali linguaggi presentano uno svantaggio: possono essere utilizzati per trasmettere le informazioni più semplici e non possono esprimere strutture complesse.

Questo non si applica a Python, poiché è un linguaggio semplice ma semplificato. Il fatto è che Python è un linguaggio con un livello di astrazione più elevato, superiore, ad esempio, a Java e C++, e consente di convogliare la stessa quantità di informazioni in una quantità minore di codice sorgente.

Python è anche un linguaggio di uso generale, quindi può essere utilizzato in quasi tutte le aree dello sviluppo software (autonomo, client-server, applicazioni Web) e in qualsiasi area tematica. Inoltre, Python si integra facilmente con i componenti esistenti, consentendoti di incorporare Python in applicazioni già scritte.

Un'altra componente del successo di Python sono i suoi moduli di estensione, sia standard che specifici. I moduli di estensione Python standard sono funzionalità ben progettate e testate nel tempo per risolvere i problemi che si presentano in ogni progetto di sviluppo software, elaborazione di stringhe e testi, interazione con il sistema operativo e supporto per applicazioni Web. Questi moduli sono scritti anche in Python, quindi hanno la loro proprietà più importante: multipiattaforma, che consente di trasferire progetti in modo rapido e indolore da un sistema operativo a un altro.

Se la funzionalità richiesta non è nella libreria Python standard, puoi creare il tuo modulo di estensione per un successivo utilizzo ripetuto. Vale la pena notare qui che i moduli di estensione per Python possono essere creati non solo nel linguaggio Python stesso, ma anche utilizzando altri linguaggi di programmazione. In questo caso, è possibile implementare in modo più efficiente attività ad alta intensità di risorse, come calcoli scientifici complessi, ma il vantaggio della multipiattaforma viene perso se il linguaggio del modulo di estensione non è esso stesso multipiattaforma, come Python.

Tempo di esecuzione di Python

Come sapete, tutti i linguaggi di programmazione multipiattaforma sono costruiti sullo stesso modello: si tratta di un codice sorgente veramente portabile e di un ambiente runtime, che non è portabile e specifico per ogni piattaforma specifica. Questo ambiente di esecuzione solitamente include un interprete che esegue il codice sorgente e varie utilità necessarie per mantenere l'applicazione: un debugger, un reverse assembler, ecc.

L'ambiente runtime Java include anche un compilatore poiché il codice sorgente deve essere compilato in bytecode per la Java virtual machine. Il runtime Python include solo un interprete, che è anche un compilatore ma compila il codice sorgente Python direttamente nel codice macchina sulla piattaforma di destinazione.

Attualmente esistono tre implementazioni runtime note per Python: CPython, Jython e Python.NET. Come suggerisce il nome, il primo framework è implementato in C, il secondo in Java e l'ultimo nella piattaforma .NET.

Il runtime CPython viene solitamente chiamato semplicemente Python e quando le persone parlano di Python, molto spesso intendono questa implementazione. Questa implementazione è composta da un interprete e moduli di estensione scritti in C e può essere utilizzata su qualsiasi piattaforma per la quale sia disponibile un compilatore C standard. Inoltre, esistono versioni precompilate del runtime per vari sistemi operativi, comprese varie versioni di Windows Sistema operativo e varie distribuzioni Linux. In questo e nei successivi articoli verrà preso in considerazione CPython, se non diversamente indicato separatamente.

Il runtime Jython è un'implementazione Python per l'esecuzione di Java Virtual Machine (JVM). È supportata qualsiasi versione JVM, a partire dalla versione 1.2.2 (l'attuale versione Java è 1.6). Lavorare con Jython richiede una macchina Java installata (ambiente runtime Java) e una certa conoscenza del linguaggio di programmazione Java. Non è necessario saper scrivere il codice sorgente in Java, ma dovrai occuparti dei file JAR e degli applet Java, oltre che della documentazione in formato JavaDOC.

Quale versione dell'ambiente scegliere dipende esclusivamente dalle preferenze del programmatore, in generale si consiglia di mantenere sul computer sia CPython che Jython, poiché non sono in conflitto tra loro, ma si completano a vicenda. L'ambiente CPython è più veloce perché non esiste uno strato intermedio sotto forma di JVM; Inoltre, le versioni aggiornate di Python vengono inizialmente rilasciate come ambiente CPython. Tuttavia, Jython può utilizzare qualsiasi classe Java come modulo di estensione ed essere eseguito su qualsiasi piattaforma per la quale esiste un'implementazione JVM.

Entrambi gli ambienti runtime sono rilasciati sotto licenza compatibile con la nota licenza GPL, quindi possono essere utilizzati per lo sviluppo di software sia commerciale che libero. La maggior parte delle estensioni Python hanno anche una licenza GPL e possono essere utilizzate liberamente in qualsiasi progetto, ma esistono anche estensioni commerciali o estensioni con licenze più rigorose. Pertanto, quando si utilizza Python in un progetto commerciale, è necessario sapere quali restrizioni esistono nelle licenze dei plug-in delle estensioni.

Iniziare con Python

Prima di iniziare a utilizzare Python, devi installare il suo ambiente di esecuzione: in questo articolo si tratta di CPython e, di conseguenza, dell'interprete Python. Esistono vari metodi di installazione: gli utenti esperti possono compilare Python da soli dal suo codice sorgente disponibile al pubblico, possono anche scaricare file eseguibili già pronti per un sistema operativo specifico dal sito Web www.python.org e, infine, molte distribuzioni Linux vengono con un interprete Python preinstallato. Questo articolo usa la versione Windows di Python 2.x, ma gli esempi presentati possono essere eseguiti su qualsiasi versione di Python.

Dopo che il programma di installazione ha distribuito gli eseguibili Python nella directory specificata, è necessario controllare i valori delle seguenti variabili di sistema:

  • SENTIERO. Questa variabile deve contenere il percorso della directory in cui è installato Python in modo che il sistema operativo possa trovarla.
  • PYTHONHOME. Questa variabile dovrebbe contenere solo il percorso della directory in cui è installato Python. Questa directory dovrebbe contenere anche una sottodirectory lib in cui verranno cercati i moduli Python standard.
  • PYTHONPATH. Una variabile con un elenco di directory contenenti moduli di estensione che verranno collegati a Python (gli elementi dell'elenco devono essere separati da un delimitatore di sistema).
  • PYTHONSTARTUP. Una variabile facoltativa che specifica il percorso dello script Python che deve essere eseguito ogni volta che viene avviata una sessione interattiva dell'interprete Python.

La riga di comando per lavorare con l'interprete ha la seguente struttura.

PYTHONHOME\python (opzioni) [ -c comando | file di script | - ] (argomenti)

Modalità interattiva Python

Se avvii l'interprete senza specificare un comando o un file di script, verrà avviato in modalità interattiva. In questa modalità viene avviata una speciale shell Python nella quale è possibile inserire singoli comandi o espressioni e il loro valore verrà immediatamente calcolato. Questo è molto comodo quando si impara Python, poiché puoi verificare immediatamente la correttezza di una particolare costruzione.

Il valore dell'espressione valutata viene memorizzato in una variabile speciale denominata Single Underscore (_) in modo che possa essere utilizzato nelle espressioni successive. Puoi terminare una sessione interattiva utilizzando la scorciatoia da tastiera Ctrl–Z su Windows o Ctrl–D su Linux.

Le opzioni sono valori stringa facoltativi che possono modificare il comportamento dell'interprete durante una sessione; il loro significato sarà discusso in questo e nei successivi articoli. Le opzioni specificano un comando specifico che deve essere eseguito dall'interprete o il percorso di un file che contiene lo script da eseguire. Vale la pena notare che un comando può essere composto da più espressioni, separate da punto e virgola, e deve essere racchiuso tra virgolette affinché il sistema operativo possa trasmetterlo correttamente all'interprete. Gli argomenti sono quei parametri che vengono passati allo script eseguibile per la successiva elaborazione; vengono passati al programma come stringhe e separati da spazi.

Per verificare che Python sia installato correttamente e funzioni correttamente, puoi eseguire i seguenti comandi:

c:\>python-v
c:\> python –c “ora di importazione; stampa ora.asctime()”

L'opzione -v stampa la versione dell'implementazione Python utilizzata ed esce, mentre il secondo comando stampa sullo schermo il valore dell'ora del sistema.

Puoi scrivere script Python in qualsiasi editor di testo, poiché si tratta di normali file di testo, ma esistono anche ambienti di sviluppo speciali progettati per funzionare con Python.

Nozioni di base sulla sintassi Python

Gli script del codice sorgente Python sono costituiti dai cosiddetti stringhe logiche, ognuno dei quali a sua volta è composto da linee fisiche. Il simbolo # viene utilizzato per denotare i commenti. L'interprete ignora i commenti e le righe vuote.

Quello che segue è un aspetto molto importante che può sembrare strano ai programmatori che imparano Python come secondo linguaggio di programmazione. Il fatto è che in Python non esiste alcun simbolo responsabile della separazione delle espressioni nel codice sorgente, come il punto e virgola (;) in C++ o Java. Un punto e virgola consente di separare più istruzioni se si trovano sulla stessa riga fisica. Inoltre, non esiste un costrutto come le parentesi graffe (), che consente di combinare un gruppo di istruzioni in un unico blocco.

Le righe fisiche sono separate dal carattere di fine riga stesso, ma se l'espressione è troppo lunga per una riga, le due righe fisiche possono essere combinate in un'unica riga logica. Per fare ciò è necessario inserire un carattere barra rovesciata (\) alla fine della prima riga, quindi l'interprete interpreterà la riga successiva come una continuazione della prima, tuttavia è impossibile che ci siano altri caratteri la prima riga dopo il carattere \, ad esempio un commento con #. Viene utilizzato solo il rientro per evidenziare blocchi di codice. Le righe logiche con la stessa dimensione di rientro formano un blocco e il blocco termina quando appare una riga logica con una dimensione di rientro inferiore. Questo è il motivo per cui la prima riga di uno script Python non dovrebbe essere rientrata. Padroneggiare queste semplici regole ti aiuterà a evitare la maggior parte degli errori associati all’apprendimento di una nuova lingua.

Non ci sono altre differenze radicali nella sintassi di Python rispetto ad altri linguaggi di programmazione. Esiste un insieme standard di operatori e parole chiave, la maggior parte dei quali sono già familiari ai programmatori, mentre quelli specifici di Python verranno trattati in questo e negli articoli successivi. Le regole standard vengono utilizzate anche per specificare identificatori di variabili, metodi e classi: il nome deve iniziare con un carattere di sottolineatura o in ogni caso un carattere latino e non può contenere i caratteri @, $, %. Inoltre, non è possibile utilizzare un solo carattere di sottolineatura come identificatore (vedere la nota a piè di pagina che parla della modalità operativa interattiva).

Tipi di dati utilizzati in Python

I tipi di dati utilizzati in Python sono gli stessi di altri linguaggi: tipi di dati interi e reali; Inoltre, è supportato un tipo di dati complesso, con una parte reale e immaginaria (un esempio di tale numero è 1,5J o 2j, dove J è la radice quadrata di -1). Python supporta stringhe che possono essere racchiuse tra virgolette singole, doppie o triple e le stringhe, come Java, sono oggetti immutabili, ad es. non possono cambiare il loro valore dopo la creazione.

Python ha anche un tipo di dati logico bool con due opzioni di valore: True e False. Tuttavia, nelle versioni precedenti di Python non esisteva tale tipo di dati e inoltre qualsiasi tipo di dati poteva essere convertito nel valore booleano True o False. Tutti i numeri diversi da zero e le stringhe o raccolte di dati non vuote sono stati trattati come True e i valori vuoti e zero sono stati trattati come False. Questa funzionalità è stata preservata nelle nuove versioni di Python, tuttavia, per aumentare la leggibilità del codice, si consiglia di utilizzare il tipo bool per le variabili booleane. Allo stesso tempo, se è necessario mantenere la compatibilità con le versioni precedenti di Python, è necessario utilizzare 1 (True) o 0 (False) come variabili booleane.

Funzionalità per lavorare con set di dati

Python definisce tre tipi di raccolte per l'archiviazione di set di dati:

  • tupla (tupla);
  • lista(lista);
  • dizionario.

Una tupla è una sequenza ordinata e immutabile di dati. Può contenere elementi di diverso tipo, come altre tuple. Una tupla è definita tra parentesi e i suoi elementi sono separati da virgole. Una speciale funzione incorporata, tuple(), consente di creare tuple da una determinata sequenza di dati.

Una lista è una sequenza ordinata e mutabile di elementi. Anche gli elementi dell'elenco sono separati da virgole, ma sono specificati tra parentesi quadre. Per creare liste viene proposta la funzione list().

Un dizionario è una tabella hash che memorizza un elemento insieme alla sua chiave identificativa. Anche l'accesso successivo agli elementi viene eseguito tramite chiave, quindi l'unità di archiviazione in un dizionario è una coppia oggetto-chiave e un oggetto valore associato. Un dizionario è una raccolta mutabile ma non ordinata, pertanto l'ordine degli elementi nel dizionario può cambiare nel tempo. Il dizionario è specificato tra parentesi graffe, la chiave è separata dal valore da due punti e le coppie chiave/valore sono separate da virgole. La funzione dict() è disponibile per creare dizionari.

Il Listato 1 mostra esempi delle diverse raccolte disponibili in Python.

Listato 1. Tipi di collezioni disponibili in Python
('w','o','r','l','d') # tupla di cinque elementi (2.62,) # tupla di un elemento [“test”,"me"] # lista di due elementi # lista vuota ( 5:'a', 6:'b', 7:'c' ) # dizionario di tre elementi con chiavi di tipo int

Definizione di funzioni in Python

Sebbene Python supporti l'OOP, molte delle sue funzionalità sono implementate come funzioni separate; Inoltre, i moduli di estensione sono spesso realizzati sotto forma di libreria di funzioni. Le funzioni vengono utilizzate anche nelle classi, dove sono tradizionalmente chiamate metodi.

La sintassi per definire le funzioni in Python è estremamente semplice; tenendo conto dei requisiti di cui sopra:

def NOME_FUNZIONE(parametri): espressione n. 1 espressione n. 2 ...

Come puoi vedere, è necessario utilizzare la parola funzione def, due punti e indentazione. Anche richiamare la funzione è molto semplice:

FUNCTION_NAME(parametri)

Ci sono solo alcune cose specifiche di Python da considerare. Come in Java, i valori primitivi vengono passati per valore (una copia del parametro viene passata alla funzione e non può modificare il valore impostato prima che la funzione fosse chiamata) e i tipi di oggetto complessi vengono passati per riferimento (un riferimento è passato alla funzione e potrebbe cambiare l'oggetto).

I parametri possono essere passati semplicemente in ordine di elenco o per nome; in questo caso non è necessario specificare quando si chiamano quei parametri per i quali esistono valori predefiniti, ma passare solo quelli obbligatori o modificare l'ordine dei parametri quando si chiama una funzione:

#funzione che esegue la divisione di interi - utilizzando l'operatore // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # risultato del lavoro: 10 print divide(delitel=5, delimoe=50) # il risultato funziona: 10

Una funzione in Python deve restituire un valore: ciò viene fatto esplicitamente utilizzando un'istruzione return seguita dal valore restituito oppure, in assenza di un'istruzione return, restituendo una costante None quando viene raggiunta la fine della funzione. Come puoi vedere dalle dichiarazioni di funzione di esempio, in Python non è necessario specificare se qualcosa viene restituito da una funzione o meno, ma se una funzione ha un'istruzione return che restituisce un valore, allora le altre istruzioni return in quella funzione devono restituire valori e, se tale valore è negativo, è necessario specificare esplicitamente return None.

Se la funzione è molto semplice e consiste di una riga, allora può essere definita proprio al momento dell'uso, in Python tale costruzione è chiamata funzione lambda; Una funzione lambda è una funzione anonima (senza il proprio nome), il cui corpo è un'istruzione return che restituisce il valore di un'espressione. Questo approccio può essere conveniente in alcune situazioni, ma vale la pena notare che riutilizzare tali funzioni è impossibile (“dove è nato, è tornato utile”).

Vale anche la pena descrivere l'atteggiamento di Python verso l'uso della ricorsione. Per impostazione predefinita, la profondità di ricorsione è limitata a 1000 livelli e quando questo livello viene superato, verrà sollevata un'eccezione e il programma interromperà l'esecuzione. Tuttavia, se necessario, il valore di questo limite può essere modificato.

Le funzioni in Python hanno altre caratteristiche interessanti, come la documentazione e la capacità di definire funzioni annidate, ma queste verranno esplorate negli articoli successivi della serie con esempi più complessi.

Da quando ho iniziato a insegnare Python nel 2011, ho trovato diverse risorse che utilizzo regolarmente. Quando ho iniziato a imparare la lingua, sono rimasto sorpreso da quanto fosse accogliente la comunità Python. Prova di ciò è l’enorme quantità di materiale gratuito e di alta qualità disponibile. Di seguito fornirò esempi di quelle risorse che semplicemente non esisterebbero senza il supporto della comunità.

1. Inventa i tuoi giochi per computer con Python

Potresti già avere il tuo libro Python preferito, ma ti incoraggio a leggere questo. Puoi acquistarlo, leggerlo online o scaricarlo gratuitamente in PDF. Mi piace la stessa struttura dei capitoli: prima si pone il problema, poi ci sono esempi di soluzioni ai problemi con spiegazioni dettagliate. Lo stesso autore ha scritto altri 3 libri meravigliosi.

2. Scultura

Ho lavorato in scuole dove per un motivo o per l'altro (solitamente motivi di sicurezza) Python non era disponibile. Skulpt esegue script Python nel browser e include diversi esempi. Il primo utilizza il modulo Turtle per visualizzare forme geometriche. Lo uso spesso per testare le conoscenze degli studenti.

3. Indovina il numero

8. Casuale

Python ha diverse utili funzioni integrate, come stampa e input. Il modulo casuale, invece, deve essere importato prima dell'uso. Permette agli studenti di aggiungere un po' di imprevedibilità ai loro progetti.

Importa moneta casuale = ['testa','croce'] lancia = random.choice(moneta) stampa(gira)

9. Antigravità

Uso raramente il modulo antigravità. Ma quando devo farlo, chiedo agli studenti cosa succederà quando lo importeranno. Di solito ricevo molte risposte diverse, a volte suggeriscono addirittura che inizierà il vero effetto dell'assenza di gravità: pensano che Python sia così potente :) Puoi provarlo tu stesso e offrirlo ai tuoi studenti.

Importa l'antigravità

10. Sabotaggio

La sfida più grande per me come insegnante è stata trovare errori di sintassi nei programmi degli studenti. Fortunatamente, prima di esaurirmi completamente per la stanchezza, ho avuto un'idea

Istruzioni passo passo per chiunque voglia imparare la programmazione Python (o la programmazione in generale) ma non sa dove fare il primo passo.

Cosa fare?

Abbiamo esaminato molti materiali di formazione e solo buoni articoli e abbiamo compilato un elenco di ciò che devi imparare per padroneggiare questo linguaggio di programmazione e svilupparlo.

1. Impara prima le basi. Scopri cosa sono le variabili, le strutture di controllo, le strutture dati. Questa conoscenza è necessaria senza essere vincolata a una lingua specifica.

2. Studiare la letteratura. Inizia con il classico: Immergiti in Python. Questo libro può effettivamente diventare un libro di consultazione. Puoi anche leggere Michael Dawson “Programmazione in Python” e Alexey Vasiliev “Python con esempi. Corso pratico di programmazione." Dawson è un programmatore e insegnante esperto e nel libro insegna a programmare creando semplici giochi. Nel libro di Vasiliev, al contrario, viene prestata maggiore attenzione ai fondamenti e alla teoria.

4. Segui il corso di introduzione all'informatica e alla programmazione Python del MIT.

5. Scopri quali librerie usano altri Pythonisti e per quali scopi. Trova qualcosa di interessante per te.

6. Se sei interessato alle tecnologie web, presta attenzione ai framework Flask e Django. Scopri per quali scopi quale è più adatto, inizia a studiare quello più adatto a te.

7. Impara come ottenere e analizzare set di dati da singoli siti, da Internet e da qualsiasi altro luogo: cerca solo di rispettare la legge.

8. Cerca informazioni sui metodi di apprendimento automatico.

9. Ottimizza il lavoro con gli strumenti, automatizza la routine e tutto ciò che non è ancora automatizzato.

Dove andare?

Diversi collegamenti utili a risorse che ti aiuteranno un po' meno su Google e a decidere in quale direzione lavorare.

Risorse utili

Tutor di Python

Questo strumento ti aiuta a superare un ostacolo fondamentale alla comprensione del linguaggio di programmazione che stai imparando: visualizzando il codice, questa risorsa fornisce informazioni dettagliate su ciò che accade mentre il computer esegue ciascuna riga di codice.

Bucky Roberts su YouTube

Se non hai familiarità con la programmazione, questi tutorial ti aiuteranno molto. Sono facili da comprendere e coprono tutto ciò di cui potresti aver bisogno inizialmente, a partire dall'installazione della lingua.

Derek Banas su Python su YouTube

Derek è un programmatore autodidatta e ha il suo approccio all'apprendimento dei linguaggi di programmazione. Realizza brevi videorecensioni di varie lingue, della durata di 40-60 minuti, in cui racconta tutto ciò che serve per comprendere in generale lo scopo della lingua.

Corey Schafer su YouTube

Corey ha ottimi video sulla formattazione delle stringhe, sui generatori, sui termini di programmazione (combinazioni e permutazioni, DRY, chiusure) e molto altro per aiutarti a comprendere i concetti.

Django per iniziare

Documentazione ufficiale per il framework web Django. Copre tutto ciò che devi sapere per iniziare, dalla configurazione alla prima applicazione.

Introduzione al pallone

Un videocorso su YouTube per coloro che vogliono conoscere Flask, comprenderne alcune sottigliezze e scoprire perché è necessario.

link utili

Novizio

Python 3 per principianti
"Un byte di Python"

I migliori articoli sull'argomento