Come configurare smartphone e PC. Portale informativo
  • casa
  • Consigli
  • Lezioni di programmazione da zero python. Il linguaggio di programmazione Python sta morendo

Lezioni di programmazione da zero python. Il linguaggio di programmazione Python sta morendo

(Traduzione)

Un articolo è stato pubblicato sul sito web "Stuff di Poromenos", in cui, in forma concisa, parlano delle basi del linguaggio Python. Ti offro una traduzione di questo articolo. La traduzione non è letterale. Ho cercato di spiegare in modo più dettagliare alcuni punti che potrebbero non essere chiari.

Se stai pensando di imparare Python, ma non riesci a trovare un tutorial adatto, allora questo articolo ti sarà di grande aiuto! In breve tempo potrai familiarizzare con le basi del linguaggio Python. Sebbene questo articolo si basi spesso sul fatto che hai già esperienza di programmazione, spero che anche i principianti trovino utile questo materiale. Leggi attentamente ogni paragrafo. A causa della concisione del materiale, alcuni argomenti sono considerati superficialmente, ma contengono tutto il materiale necessario.

Proprietà di base

Python non richiede una dichiarazione esplicita di variabili, è 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 parentesi di operatore (begin..end in pascal o (..) in C), invece i blocchi sono rientrati: spazi o tabulazioni e l'immissione nel blocco di istruzioni avviene con i due punti. I commenti su una riga iniziano con il 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 - "==". Per aumentare il valore di una variabile o aggiungerla a una stringa, viene utilizzato l'operatore "+=" e per diminuire - "-=". Tutte queste operazioni possono interagire con la maggior parte dei tipi, comprese le stringhe. Per esempio

>>>myvar=3

>>> myvar += 2

>>> myvar -= 1

"""Questo è un commento su più righe

Le stringhe racchiuse tra tre virgolette vengono ignorate"""

>>> mystring = "Ciao"

>>> mystring += "mondo".

>>> stampa la mia stringa

Ciao mondo.

# La riga successiva cambia

Valori delle variabili in luoghi. (Solo una riga!)

>>> myvar, mystring = mystring, myvar

Strutture di dati

Python contiene strutture di dati come liste (liste), tuple (tuple) e dizionari (dizionari). Gli elenchi sono simili agli array unidimensionali (ma puoi usare un elenco che include 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 con l'indice 0 e l'ultimo elemento è accessibile dall'indice -1.È possibile assegnare funzioni alle variabili e utilizzarle di conseguenza.

>>> sample = , ("a", "tupla")] #Una lista è composta da un numero intero, un'altra lista e una tupla

>>> mylist = ["Elenco voce 1", 2, 3.14] #Questo elenco contiene una stringa, un numero intero e una frazione

>>> mylist = "Elenco di nuovo l'elemento 1" #Cambia il primo (zero) elemento della lista mylist

>>> mialista[-1] = 3.14 #Cambia l'ultimo elemento della lista

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

>>> mydict["pi"] = 3.15 #Cambia la voce del dizionario all'indice "pi".

>>> mytuple = (1, 2, 3) #Imposta la tupla

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

>>> stampa la mia funzione (la mia lista)

È possibile utilizzare parte di un array specificando il primo e l'ultimo indice separati da due punti ":". In questo caso, otterrai una parte dell'array, dal primo indice al secondo, compreso. 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:

>>> mia lista = ["Elenco voce 1", 2, 3.14]

>>> print mylist[:] #Leggi tutti gli elementi dell'array

["Elenco voce 1", 2, 3.14000000000000001]

>>> print mylist #Leggi lo zero e il primo elemento dell'array.

["Elenco voce 1", 2]

>>> print mylist[-3:-1] #Lettura elementi da zero (-3) a secondo (-1) (non inclusi)

["Elenco voce 1", 2]

>>> stampa la mia lista #Lettura degli elementi dal primo all'ultimo

stringhe

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

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

Nome: Poromeno

Numero 3

corda: ---

stringString = """Questo testo si trova

su più righe

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

Questo è un test.

Operatori

Il mentre, se , per le dichiarazioni costituiscono le dichiarazioni di mossa. Non esiste un analogo dell'istruzione select, quindi è necessario ignorare if . L'istruzione for confronta variabile ed elenco. Per ottenere un elenco di cifre prima di un numero - usa l'intervallo( ). Ecco un esempio di utilizzo degli operatori

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

>>> stampa rangelist

for number in rangelist: #Finché il numero della variabile (che aumenta di uno ogni volta) è nell'elenco...

# Controlla se la variabile è inclusa

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

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

# L'operazione "break" prevede

# uscire dal ciclo in qualsiasi momento

Rompere

altro:

# "continua" "scorre"

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

# in ogni caso il programma torna ad elaborare il ciclo

Continua

altro:

# "altro" è facoltativo. Condizione soddisfatta

# a meno che il ciclo non sia stato interrotto con "break".

Passa # Non fare nulla

se rangelist == 2:

Stampa "Il secondo elemento (le liste sono basate su 0) è 2"

elif rangelist == 3:

Stampa "Il secondo elemento (le liste sono basate su 0) è 3"

altro:

Stampa "Non so"

mentre rangelist == 1:

Passaggio

Funzioni

Usato per dichiarare una funzione parola chiave "definizione". Gli argomenti della funzione sono specificati tra parentesi dopo il nome della funzione. È possibile specificare argomenti facoltativi assegnando loro un valore predefinito. Le funzioni possono restituire tuple, nel qual caso i valori di ritorno devono essere separati da virgole. La parola chiave lambda viene utilizzata per dichiarare le funzioni elementari.

# arg2 e arg3 sono argomenti opzionali, prendono il valore dichiarato di default,

# a meno che tu non dia loro un valore diverso quando chiami la funzione.

def myfunction(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 denominato".

>>>ret1, ret2, ret3 = myfunction("Argomento 1", arg3 = "Argomento denominato")

# ret1, ret2 e ret3 prendono rispettivamente i valori "Argomento denominato", 100, "Argomento 1"

>>> stampa ret1, ret2, ret3

Argomento denominato 100 Argomento 1

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

funzionevar = lambda x: x + 1

>>> stampa funzionevar(1)

Classi

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

classeMyclass:

Comune = 10

Def __init__(self):

Self.myvariable = 3

Def myfunction(self, arg1, arg2):

Restituisce self.myvariable

# 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 è impostato su 3 come dichiarato nel metodo di inizializzazione

>>> classinstance.myfunction(1, 2) #Method myfunction of class Myclass restituisce il valore della variabile myvariable

# La variabile comune è dichiarata in tutte le classi

>>> istanza di classe2 = Miaclass()

>>> istanza di classe.comune

>>> classinstance2.common

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

# e i suoi valori negli oggetti inizializzati dalla classe Myclass

>>>Myclass.common = 30

>>> istanza di classe.comune

>>> classinstance2.common

# Qui non cambiamo la variabile di classe. Invece di questo

# lo dichiariamo nell'oggetto e gli assegniamo un nuovo valore

>>> classinstance.common = 10

>>> istanza di classe.comune

>>> classinstance2.common

>>>Myclass.common = 50

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

# oggetti variabili di questa classe

>>> istanza di classe.comune

>>> classinstance2.common

# La classe seguente è una sottoclasse di Myclass

# ereditandone le proprietà ei metodi, chiunque possa la classe

# essere ereditato da più classi, in questo caso la voce

# così: class Otherclass(Myclass1, Myclass2, MyclassN)

classe Otherclass(Myclass):

Def __init__(self, arg1):

Self.myvariable = 3

Stampa arg1

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

ciao

>>> classinstance.myfunction(1, 2)

# Questa classe non ha la proprietà test, ma possiamo

# dichiarare tale variabile per l'oggetto. E

# questa variabile sarà solo un membro di classinstance.

>>> classinstance.test = 10

>>>classinstance.test

Eccezioni

Le eccezioni in Python hanno una struttura try-except:

defsomefunction():

Tentativo:

# La divisione per zero genera un errore

10 / 0

Tranne ZeroDivisionError:

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

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

Stampa "Spiacenti, non valido."

>>> fntranne()

Ops, non valido.

Importare

Le librerie esterne possono essere incluse utilizzando la procedura di importazione, dove è il nome della libreria inclusa. Puoi anche utilizzare il comando "from import" in modo da poter utilizzare la funzione dalla libreria:

import random #Importa la libreria "random".

from time import clock #E contemporaneamente la funzione "clock" dalla libreria "time".

randomint = random.randint(1, 100)

>>> stampa randomint

Lavorare con il file system

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

sottaceto di importazione

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(mylist, myfile)

miofile.chiudi()

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

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

miofile.chiudi()

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

>>> stampa miofile.read()

"Questa è una stringa di esempio"

miofile.chiudi()

# Apri il file per la lettura

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

lista caricata = pickle.load(myfile)

miofile.chiudi()

>>>stampa lista caricata

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

Peculiarità

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

>>> lst1 =

>>> lst2=

>>> stampa

>>> stampa

# L'operatore "any" restituisce true se benchè

# se una delle condizioni in esso incluse è soddisfatta.

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

Vero

# La procedura seguente conta il numero

# elementi corrispondenti nell'elenco

>>> sum(1 for i in if i == 3)

>>> del lst1

>>> stampa lst1

>>> del lst1

  • Variabili globali sono dichiarati al di fuori delle funzioni e possono essere letti 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, Python dichiarerà la variabile disponibile solo per questo funzione.

numero = 5

def myfunc():

# Uscite 5

numero di stampa

define un'altra funzione():

# 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.

numero di stampa

Numero = 3

def yetanotherfunc():

numero globale

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

Numero = 3

Epilogo

Naturalmente, questo articolo non copre tutte le funzionalità di Python. Spero che questo articolo ti aiuti se vuoi continuare ad imparare questo linguaggio di programmazione.

Vantaggi di Python

  • La velocità di esecuzione dei programmi scritti in Python è molto elevata. Questo perché le principali librerie Python
    sono scritti in C++ e il completamento delle attività richiede meno tempo rispetto ad altri linguaggi di alto livello.
  • A questo proposito, puoi scrivere i tuoi moduli per Python in C o C++
  • Nelle librerie standard di Python puoi trovare strumenti per lavorare con la posta elettronica, protocolli
    Internet, FTP, HTTP, database, ecc.
  • Gli script scritti con Python vengono eseguiti sulla maggior parte dei sistemi operativi moderni. Questa portabilità consente a Python di essere utilizzato in un'ampia varietà di applicazioni.
  • Python è adatto a qualsiasi soluzione di programmazione, che si tratti di programmi per ufficio, applicazioni web, applicazioni GUI, ecc.
  • Migliaia di appassionati da tutto il mondo hanno lavorato allo sviluppo di Python. Dobbiamo il supporto delle moderne tecnologie nelle librerie standard al fatto che Python era aperto a tutti.

C'era una volta, in un forum chiuso, ho provato a insegnare Python. In generale, le cose si sono bloccate lì. Mi dispiaceva per le lezioni scritte e ho deciso di pubblicarle per il grande pubblico. Mentre il primo, il più semplice. Diventa più interessante, ma forse non sarà interessante. In generale, questo post sarà un fumetto di prova, se ti piace lo diffonderò ulteriormente.

Python per principianti. Primo capitolo. "Di cosa stiamo parlando"

Per ogni evenienza, un po' di noiosa "evangelizzazione". Chi ne è stanco, può saltare qualche paragrafo.
Python (pronunciato "Python" non "python") è un linguaggio di scripting sviluppato da Guido van Rossum come un linguaggio semplice che è facile da imparare per un principiante.
Al giorno d'oggi, Python è un linguaggio ampiamente utilizzato che viene utilizzato in molte aree:
- Sviluppo di software applicativi (ad esempio, linux utility yum, pirut, system-config-*, Gajim IM client e molti altri)
- Sviluppo di applicazioni web (il più potente server di applicazioni Zope e il CMS sviluppato sulla base di Plone, sulla base del quale, ad esempio, funziona il sito web della CIA, e molti framework per lo sviluppo rapido di applicazioni Plones, Django, TurboGears e molti altri)
- Utilizzare come linguaggio di scripting incorporato in molti giochi e non solo (nella suite per ufficio OpenOffice.org, editore Blender 3d, Postgre DBMS)
- Utilizzo nei calcoli scientifici (con i pacchetti SciPy e numPy per i calcoli e PyPlot per la stampa, Python diventa quasi paragonabile a pacchetti come MatLab)

E questo non è certo un elenco completo di progetti che utilizzano questo meraviglioso linguaggio.

1. L'interprete stesso, puoi ottenerlo qui (http://python.org/download/).
2. Ambiente di sviluppo. Non è necessario iniziare e l'IDLE incluso nella distribuzione è adatto a un principiante, ma per progetti seri serve qualcosa di più serio.
Per Windows uso il meraviglioso e leggero PyScripter (http://tinyurl.com/5jc63t), per Linux uso l'IDE di Komodo.

Anche se per la prima lezione sarà sufficiente solo la shell interattiva di Python.

Basta eseguire python.exe. Il prompt di input non richiederà molto tempo, si presenta così:

Puoi anche scrivere programmi su file con estensione py, nel tuo editor di testo preferito, che non aggiunge i suoi caratteri di markup al testo (nessuna parola lo farà). È inoltre auspicabile che questo editor sia in grado di creare "schede intelligenti" e non sostituire gli spazi con un carattere di tabulazione.
Per eseguire i file per l'esecuzione, puoi fare clic su di essi 2 volte. Se la finestra della console si chiude troppo velocemente, inserire la seguente riga alla fine del programma:

Quindi l'interprete attenderà che venga premuto invio alla fine del programma.

Oppure associa i file py in Far con Python e apri premendo invio.

Infine, puoi utilizzare uno dei tanti pratici IDE Python che forniscono sia funzionalità di debug che evidenziazione della sintassi e molte altre "convenienze".

Un po' di teoria

Per cominciare, Python è un linguaggio tipizzato fortemente dinamico. Cosa significa questo?

Esistono linguaggi con tipizzazione forte (pascal, java, c, ecc.), in cui il tipo di una variabile è determinato in anticipo e non può essere modificato, e ci sono linguaggi con tipizzazione dinamica (python, ruby, vb ), in cui il tipo di una variabile viene interpretato in base al valore assegnato.
Le lingue digitate dinamicamente possono essere ulteriormente suddivise in 2 tipi. Strict, che non consentono conversioni di tipo implicite (Pyton) e non strict, che eseguono conversioni di tipo implicite (ad esempio VB, in cui puoi facilmente aggiungere la stringa "123" e il numero 456).
Dopo aver affrontato la classificazione di Python, proviamo a "giocare" un po' con l'interprete.

>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , b (2, 1)

Quindi, vediamo che l'assegnazione viene eseguita utilizzando il segno =. È possibile assegnare un valore a più variabili contemporaneamente. Quando dici all'interprete il nome di una variabile in modo interattivo, ne emette il valore.

La prossima cosa che devi sapere è come sono costruite le unità algoritmiche di base: rami e loop. Per iniziare, abbiamo bisogno di un piccolo aiuto. In Python non esiste un delimitatore di blocchi di codice speciale, il loro ruolo è svolto dall'indentazione. Cioè, ciò che viene scritto con la stessa indentazione è un blocco di comandi. All'inizio può sembrare strano, ma dopo averci abituato un po', capisci che questa misura "forzata" ti consente di ottenere un codice molto leggibile.
Quindi condizioni.

La condizione viene specificata utilizzando un'istruzione if che termina con ":". Le condizioni alternative che saranno soddisfatte se il primo test "fallisce" sono date dalla dichiarazione elif. Infine, else specifica il ramo che verrà eseguito se nessuna delle condizioni corrisponde.
Si noti che dopo aver digitato if, l'interprete indica con il prompt "..." che sta aspettando che l'input continui. Per dirgli che abbiamo finito, devi inserire una stringa vuota.

(Per qualche ragione, l'esempio con i rami rompe il markup su Habré, nonostante i balli con i tag pre e code. Scusate l'inconveniente, l'ho lanciato qui pastebin.com/f66af97ba, se qualcuno mi dice cosa c'è che non va, lo farò essere molto grato)

cicli.

Il caso più semplice di un ciclo è il ciclo while. Prende una condizione come parametro e viene eseguita finché è vera.
Ecco un piccolo esempio.

>>> x = 0 >>> mentre x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

Si noti che poiché sia ​​print x che x+=1 sono scritti con la stessa indentazione, sono considerati il ​​corpo del ciclo (ricordate cosa ho detto sui blocchi? ;-)).

Il secondo tipo di ciclo in Python è il ciclo for. È simile al ciclo foreach in altre lingue. La sua sintassi è convenzionalmente la seguente.

Per la variabile nell'elenco:
comandi

Alla variabile verranno assegnati a sua volta tutti i valori della lista (infatti può esserci non solo una lista, ma anche un qualsiasi altro iteratore, ma per ora non ci preoccuperemo di questo).

Qui c'è un semplice esempio. L'elenco sarà una stringa, che non è altro che un elenco di caratteri.

>>> x = "Ciao, Python!" >>> for char in x: ... print char ... H e l ........... !

Pertanto, possiamo scomporre la stringa in caratteri.
Cosa fare se abbiamo bisogno di un ciclo che si ripeta un certo numero di volte? Molto semplice, la funzione range verrà in soccorso.

In input, prende da uno a tre parametri, in output restituisce un elenco di numeri, che possiamo "scorrere" con l'istruzione for.

Ecco alcuni esempi di utilizzo della funzione range che spiegano il ruolo dei suoi parametri.

>>> intervallo(10) >>> intervallo(2, 12) >>> intervallo(2, 12, 3) >>> intervallo(12, 2, -2)

E un piccolo esempio con un ciclo.

>>> per x nell'intervallo(10): ... print x ... 0 1 2 ..... 9

Input Output

L'ultima cosa che devi sapere prima di iniziare a usare Python completamente è come gestisce l'I/O.

Per l'output, viene utilizzato il comando print, che stampa tutti i suoi argomenti in formato leggibile.

Per l'input della console, viene utilizzata la funzione raw_input(prompt), che visualizza un prompt e attende l'input dell'utente, restituendo ciò che l'utente ha inserito come valore.

X = int(raw_input ("Inserisci un numero:")) print "Il quadrato di questo numero è ", x * x

Attenzione! Nonostante l'esistenza della funzione input () di un'azione simile, non è consigliabile utilizzarla nei programmi, poiché l'interprete tenta di eseguire espressioni sintattiche immesse utilizzandola, che è una grave falla di sicurezza nel programma.

Questo è tutto per la prima lezione.

Compiti a casa.

1. Scrivi un programma per calcolare l'ipotenusa di un triangolo rettangolo. La lunghezza delle gambe è richiesta dall'utente.
2. Scrivete un programma per trovare le radici di un'equazione quadratica in termini generali. I coefficienti sono richiesti dall'utente.
3. Scrivere un programma per visualizzare la tabella di moltiplicazione per il numero M. La tabella viene compilata da M * a a M * b, dove M, a, b sono richiesti all'utente. L'output deve essere in una colonna, un esempio per riga nella forma seguente (ad esempio):
5 x 4 = 20
5 x 5 = 25
E così via.

Python è un linguaggio di scripting popolare e potente con il quale puoi fare quello che vuoi. Ad esempio, puoi eseguire la scansione di siti Web e raccogliere dati da essi, creare reti e strumenti, eseguire calcoli, programmare per Raspberry Pi, sviluppare programmi di grafica e persino videogiochi. Python può \\ scrivere programmi di sistema indipendenti dalla piattaforma.

In questo articolo tratteremo le basi della programmazione Python, cercheremo di coprire tutte le funzionalità di base di cui avrai bisogno per iniziare a usare il linguaggio. Considereremo l'uso di classi e metodi per risolvere vari problemi. Si presume che tu abbia già familiarità con le basi e la sintassi della lingua.

Cos'è Python?

Non entrerò nella storia della creazione e dello sviluppo del linguaggio, puoi facilmente impararlo dal video che sarà allegato di seguito. È importante notare che Python è un linguaggio di scripting. Ciò significa che il codice viene controllato per individuare eventuali errori ed eseguito immediatamente senza alcuna ulteriore compilazione o rielaborazione. Questo approccio è anche chiamato interpretativo.

Ciò riduce le prestazioni, ma è molto conveniente. C'è un interprete in cui puoi inserire comandi e vedere immediatamente il loro risultato. Tale lavoro interattivo aiuta molto nell'apprendimento.

Lavorare nell'interprete

Avviare l'interprete Python è molto semplice su qualsiasi sistema operativo. Ad esempio, su Linux, basta digitare il comando python nel terminale:

Nel prompt dell'interprete che si apre, vediamo la versione di Python attualmente in uso. Al giorno d'oggi sono molto diffuse due versioni di Python 2 e Python 3. Sono entrambe popolari perché la prima ha sviluppato molti programmi e librerie, e la seconda ha più funzionalità. Pertanto, le distribuzioni includono entrambe le versioni. Per impostazione predefinita, viene avviata la seconda versione. Ma se hai bisogno della versione 3, devi eseguire:

È la terza versione che verrà considerata in questo articolo. Ora diamo un'occhiata alle caratteristiche principali di questa lingua.

Operazioni sulle stringhe

Le stringhe in Python sono immutabili, non puoi cambiare uno dei caratteri in una stringa. Qualsiasi modifica al contenuto richiede l'esecuzione di una nuova copia. Apri l'interprete e segui gli esempi elencati di seguito per capire meglio tutto ciò che è scritto:

1. Concatenazione di stringhe

str = "benvenuto" + "in python"
stampa(str)

2. Moltiplicazione di stringhe

str = "perdita" * 2
stampa(str)

3. Combinare con la trasformazione

Puoi concatenare una stringa con un numero o un booleano. Ma per questo è necessario utilizzare una trasformazione. C'è una funzione str() per questo:

str = "Questo è un numero di prova " + str(15)
stampa(str)

4. Cerca una sottostringa

Puoi trovare un carattere o una sottostringa usando il metodo di ricerca:

str = "Benvenuto nel sito"
print(str.find("sito"))

Questo metodo stampa la posizione della prima occorrenza del sito della sottostringa se viene trovata, se non ne viene trovata nessuna, viene restituito -1. La funzione inizia dal primo carattere, ma puoi iniziare dall'ennesimo carattere, come 26:

str = "Benvenuto nel sito"
print(str.find("perdita",26))

In questo caso, la funzione restituirà -1 perché la stringa non è stata trovata.

5. Ottenere una sottostringa

Abbiamo ottenuto la posizione della sottostringa che stiamo cercando, e ora come ottenere la sottostringa stessa e cosa c'è dopo? Per fare ciò, usa questa sintassi [inizio: fine], basta specificare due numeri o solo il primo:

str = "Uno due tre"
stampa(str[:2])
stampa(str)
stampa(str)
stampa(str[-1])

La prima riga produrrà una sottostringa dal primo al secondo carattere, la seconda - dal secondo alla fine. Si prega di notare che il conto alla rovescia parte da zero. Per contare alla rovescia, usa un numero negativo.

6. Sostituzione della sottostringa

Puoi sostituire parte di una stringa con il metodo di sostituzione:

str = "Questo sito parla di Linux"
str2 = str.replace("Linux", "Windows")
stampa(str2)

Se sono presenti molte occorrenze, è possibile sostituire solo la prima:

str = "Questo è un sito Linux e mi iscrivo a questo sito"
str2 = str.replace("sito web", "pagina",1)
stampa(str2)

7. Ripulire le linee

Puoi rimuovere gli spazi extra con la funzione strip:

str = "Questo è un sito Web Linux"
print(str.striscia())

È anche possibile rimuovere spazi extra solo a destra di rstrip o solo a sinistra - lstrip.

8. Cambio di caso

Ci sono funzioni speciali per cambiare il caso dei caratteri:

str="Benvenuto in Lost"
print(str.upper())
print(str.lower())

9. Conversione di stringhe

Esistono diverse funzioni per convertire una stringa in vari tipi numerici, queste sono int() , float() , long() e altre. La funzione int() converte in un numero intero e float() in un numero in virgola mobile:

str="10"
str2="20"
stampa(str+str2)
print(int(str)+int(str2))

10. Lunghezza della linea

È possibile utilizzare le funzioni min(), max(), len() per calcolare il numero di caratteri in una stringa:

str="Benvenuto in Lost"
stampa(min(str))
stampa(max(str))
stampa(len(str))

Il primo mostra la dimensione minima dei caratteri, il secondo mostra il massimo e il terzo mostra la lunghezza totale della stringa.

11. Iterare su una riga

Puoi accedere a ciascun carattere di una stringa individualmente con un ciclo for:

str="Benvenuto nel sito"
for i in range(len(str)):
stampa(str[i])

Abbiamo usato la funzione len() per limitare il ciclo. Notare il rientro. La programmazione Python si basa su questo, non ci sono parentesi per organizzare i blocchi, solo indentazione.

Operazioni con i numeri

I numeri in Python sono abbastanza semplici da dichiarare o utilizzare nei metodi. Puoi creare numeri interi o float:

num1 = 15
num2 = 3,14

1. Arrotondare i numeri

Puoi arrotondare un numero con la funzione di arrotondamento, basta specificare quante cifre lasciare:

a=15.5652645
print(round(a,2))

2. Generazione di numeri casuali

Puoi ottenere numeri casuali usando il modulo casuale:

importa a caso
stampa(casuale.casuale())

Per impostazione predefinita, il numero viene generato nell'intervallo da 0,0 a 1,0. Ma puoi impostare il tuo intervallo:

importa a caso
numeri=
print(random.choice(numeri))

Operazioni con data e ora

Il linguaggio di programmazione Python dispone di un modulo DateTime che consente di eseguire varie operazioni su date e orari:

importa data e ora
cur_date = datetime.datetime.now()
print(cur_date)
print(cur_date.year)
print(cur_date.day)
print(cur_date.weekday())
print(cur_date.month)
print(cur_date.time())

L'esempio mostra come estrarre il valore desiderato da un oggetto. Puoi ottenere la differenza tra due oggetti:

importa data e ora
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
timediff = time2 - time1
stampa (differenza temporale.microsecondi)

Puoi creare tu stesso oggetti data con un valore arbitrario:

time1 = datetime.datetime.now()
time2 = datetime.timedelta(giorni=3)
tempo3=tempo1+tempo2
print(time3.date())

1. Formattazione di data e ora

Il metodo strftime consente di modificare il formato della data e dell'ora in base allo standard selezionato o al formato specificato. Ecco i caratteri di formattazione di base:

  • %un- giorno della settimana, nome abbreviato;
  • %UN- giorno della settimana, nome completo;
  • %w- numero del giorno della settimana, da 0 a 6;
  • %d- giorno del mese;
  • %b- nome abbreviato del mese;
  • %B- il nome completo del mese;
  • %m- numero del mese;
  • %Y- numero dell'anno;
  • %H- ora del giorno nel formato 24 ore;
  • %l- ora del giorno in formato 12 ore;
  • %p- Antimeridiane o pomeridiane;
  • %M- minuto;
  • %S- secondo.

importa data e ora
date1 = datetime.datetime.now()
print(date1.strftime("%d. %B %Y %I:%M%p"))

2. Crea la data dalla stringa

È possibile utilizzare la funzione strptime() per creare un oggetto data da una stringa:

importa data e ora
date1=datetime.datetime.strptime("21-11-2016", "%Y-%m-%d")
date2=datetime.datetime(anno=2015, mese=11, giorno=21)
stampa(data1);
stampa(data2);

Operazioni sul file system

La gestione dei file è molto semplice nel linguaggio di programmazione Python, è il miglior linguaggio per lavorare con i file. E in generale, possiamo dire che Python è il linguaggio più semplice.

1. Copia i file

Per copiare i file, è necessario utilizzare le funzioni del modulo subutil:

importare shutil
nuovo_percorso = shutil.copy("file1.txt", "file2.txt")

nuovo_percorso = shutil.copy("file1.txt", "file2.txt", follow_symlinks=False)

2. Spostamento di file

Lo spostamento dei file viene eseguito utilizzando la funzione di spostamento:

shutil.move("file1.txt", "file3.txt")

La funzione di rinomina del modulo os consente di rinominare i file:

importare os
os.rename("file1.txt", "file3.txt")

3. Lettura e scrittura di file di testo

È possibile utilizzare le funzioni integrate per aprire file, leggere o scrivere dati su di essi:

fd = open("file1.txt")
contenuto = fd.read()
stampa (contenuto)

Per prima cosa devi aprire il file per lavorare con la funzione di apertura. Per leggere i dati da un file, viene utilizzata la funzione di lettura, il testo letto verrà salvato in una variabile. È possibile specificare il numero di byte da leggere:

fd = open("file1.txt")
contenuto = fd.read(20)
stampa (contenuto)

Se il file è troppo grande, puoi dividerlo in righe ed elaborarlo in questo modo:

contenuto = fd.readlines()
stampa (contenuto)

Per scrivere dati su un file, è necessario prima aprirlo per la scrittura. Sono disponibili due modalità operative: sovrascrittura e aggiunta alla fine del file. Modalità di registrazione:

fd = open("file1.txt","w")

E aggiungendo alla fine del file:

fd = open("file1.txt","a")
content = fd.write("Nuovo contenuto")

4. Creare directory

Per creare una directory, usa la funzione mkdir dal modulo os:

importare os
os.mkdir("./nuova cartella")

5. Ottieni il tempo di creazione

È possibile utilizzare le funzioni getmtime(), getatime() e getctime() per ottenere l'ultima modifica, l'ultimo accesso e l'ora creata. Il risultato verrà emesso in formato Unix, quindi deve essere convertito in un formato leggibile:

importare os
importa data e ora
tim=os.path.getctime("./file1.txt")
print(datetime.datetime.fromtimestamp(tim))

6. Elenco di file

Con la funzione listdir(), puoi ottenere un elenco di file in una cartella:

importare os
files=os.listdir(".")
stampa (file)

Per risolvere lo stesso problema, puoi utilizzare il modulo glob:

mondo di importazione
files=glob.glob("*")
stampa (file)

7. Serializzazione di oggetti Python

sottaceto di importazione
fd = open("myfile.pk", "wb")
pickle.dump(mydata,fd)

Quindi per ripristinare l'oggetto utilizzare:

sottaceto di importazione
fd = open("myfile.pk", "rb")
dati personali = pickle.load(fd)

8. Compressione dei file

La libreria standard Python ti consente di lavorare con vari formati di archivio, come zip, tar, gzip, bzip2. Per visualizzare il contenuto di un file, utilizzare:

importa file zip
mio_zip = zipfile.ZipFile("mio_file.zip", mode="r")
print(lista nomifile())

E per creare un archivio zip:

importa file zip
file=zipfile.ZipFile("files.zip","w")
file.write("file1.txt")
file.close()

Puoi anche decomprimere l'archivio:

importa file zip
file=zipfile.ZipFile("files.zip","r")
file.extractall()
file.close()

Puoi aggiungere file a un archivio come questo:

importa file zip
file=zipfile.ZipFile("files.zip","a")
file.write("file2.txt")
file.close()

9. Analisi di file CSV ed Excel

Utilizzando il modulo panda, puoi visualizzare e analizzare il contenuto delle tabelle CSV ed Excel. Per prima cosa devi installare il modulo con pip:

sudo pip installa panda

Quindi per analizzare, digitare:

importare panda
data=pandas.read_csv("file.csv)

Per impostazione predefinita, panda utilizza la prima colonna per le intestazioni di ogni riga. È possibile specificare una colonna per l'indice utilizzando il parametro index_col oppure specificare False se non è necessario. Per scrivere le modifiche in un file, utilizzare la funzione to_csv:

data.to_csv("file.csv)

Allo stesso modo, puoi analizzare il file Excel:

data = pd.read_excel("file.xls", sheetname="Foglio1")

Se devi aprire tutte le tabelle, usa:

data = pd.ExcelFile("file.xls")

Quindi puoi riscrivere tutti i dati:

data.to_excel("file.xls", sheet="Foglio1")

Reti in Python

La programmazione di Python 3 implica spesso il networking. La libreria standard Python include funzionalità socket per l'accesso alla rete di basso livello. Ciò è necessario per supportare molti protocolli di rete.

presa di importazione
host="192.168.1.5"
porta=4040
my_sock = socket.create_connection((host, porta))

Questo codice si collega alla porta 4040 sulla macchina 192.168.1.5. Quando il socket è aperto, puoi inviare e ricevere dati:

my_sock.sendall(b"Hello World")

Dobbiamo scrivere il carattere b, prima della stringa, perché dobbiamo trasferire i dati in modalità binaria. Se il messaggio è troppo grande, puoi ripetere:

msg = b"Il messaggio più lungo va qui"
mesglen = len(msg)
totale = 0
mentre totale< msglen:
inviato = my_sock.send(msg)
totale = totale + inviato

Per ricevere i dati, devi anche aprire un socket, viene utilizzato solo il metodo my_sock_recv:

data_in = mio_calza.recv(2000)

Qui indichiamo quanti dati ricevere - 20000, i dati non verranno trasferiti alla variabile fino a quando non saranno stati ricevuti 20000 byte di dati. Se il messaggio è più grande, per riceverlo è necessario creare un loop:

buffer = matrice di byte(b" " * 2000)
my_sock.recv_into(buffer)

Se il buffer è vuoto, il messaggio ricevuto verrà scritto lì.

Posta lavoro

La libreria standard Python consente di ricevere e inviare messaggi di posta elettronica.

1. Ricezione di posta da un server POP3

Per ricevere i messaggi, utilizziamo il server POP:

importa getpass,poplib
pop_serv = poplib.POP3 ("192.168.1.5")
pop_serv.user("mioutente")
pop_serv.pass_(getpass.getpass())

Il modulo getpass consente di recuperare la password dell'utente in modo sicuro in modo che non venga visualizzata sullo schermo. Se il server POP utilizza una connessione protetta, è necessario utilizzare la classe POP3_SSL. Se la connessione è andata a buon fine, puoi interagire con il server:

msg_list = pop_serv.list() # per elencare i messaggi
msg_count = pop_serv.msg_count()

Per completare il tuo lavoro, usa:

2. Ricezione di posta da un server IMAP

Il modulo imaplib viene utilizzato per connettersi e lavorare con il server IMAP:

importa imaplib, getpass
mia_imap = imaplib.IMAP4("imap.server.com")
my_imap.login("mioutente", getpass.getpass())

Se il tuo server IMAP utilizza una connessione protetta, devi utilizzare la classe IMAP4_SSL. Per ottenere un elenco di messaggi utilizzare:

data = my_imap.search(Nessuno, "TUTTI")

È quindi possibile scorrere l'elenco selezionato e leggere ogni messaggio:

msg = my_imap.fetch(email_id, "(RFC822)")

Ma non dimenticare di chiudere la connessione:

mia_imap.close()
mia_imap.logout()

3. Invia posta

Per inviare la posta si utilizzano il protocollo SMTP e il modulo smtplib:

importa smtplib, getpass
mio_smtp = smtplib.SMTP(smtp.server.com")
my_smtp.login("mioutente", getpass.getpass())

Come prima, usa SMTP_SSL per una connessione sicura. Una volta stabilita la connessione, è possibile inviare un messaggio:

da_addr=" [email protetta]"
a_addr=" [email protetta]"
msg = "Da: [email protetta]\r\nA: [email protetta]\r\n\r\nCiao, questo è un messaggio di prova"
my_smtp.sendmail(da_addr, a_addr, msg)

Lavorare con le pagine web

La programmazione Python viene spesso utilizzata per scrivere vari script per lavorare con il web.

1. Scansione del Web

Il modulo urllib ti permette di interrogare le pagine web in vari modi. Per inviare una richiesta normale, viene utilizzata la classe richiesta. Ad esempio, eseguiamo una normale richiesta di pagina:

import urllib.request
my_web = urllib.request.urlopen("https://www.google.com")
print(my_web.read())

2. Utilizzo del metodo POST

Se devi inviare un modulo web, devi utilizzare un POST piuttosto che una richiesta GET:

import urllib.request
mydata = b"I tuoi dati vanno qui"
my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
my_form = urllib.request.urlopen(my_req)
print(my_form.status)

3. Crea un server web

Con la classe Socket, puoi accettare connessioni in entrata, il che significa che puoi creare un server web con funzionalità minime:

presa di importazione
host=""
porta=4242
mio_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mio_server.bind((host, porta))
mio_server.ascolta(1)

Quando viene creato il server. puoi iniziare ad accettare connessioni:

addr = mio_server.accetta()
print("Connesso dall'host", addr)
dati = conn.recv(1024)

E non dimenticare di chiudere la connessione:

Multithreading

Come la maggior parte dei linguaggi moderni, Python ti consente di eseguire più thread paralleli, che possono essere utili se devi eseguire calcoli complessi. La libreria standard ha un modulo di threading che contiene la classe Therad:

importare il threading
def stampa_messaggio():
print("Il messaggio è stato stampato da un thread diverso")
my_thread = threading.Thread(target=print_message)
mio_thread.inizio()

Se la funzione è in esecuzione da troppo tempo, puoi controllare se tutto è a posto con la funzione is_alive(). A volte i tuoi thread devono accedere a risorse globali. Per questo, vengono utilizzati i blocchi:

importare il threading
numero = 1
my_lock = threading.Lock()
def my_func():
numero globale, my_lock
my_lock.acquisire()
somma = numero + 1
stampa (somma)
my_lock.release()
my_thread = threading.Thread(target=my_func)
mio_thread.inizio()

conclusioni

In questo articolo, abbiamo trattato le basi della programmazione Python. Ora conosci la maggior parte delle funzioni utilizzate di frequente e puoi usarle nei tuoi piccoli programmi. Amerai la programmazione di Python 3, è molto semplice! Se avete domande, chiedete nei commenti!

Alla fine dell'articolo, una grande lezione su Python:

introduzione


In connessione con il rapido sviluppo attualmente osservato del personal computer, c'è un graduale cambiamento nei requisiti per i linguaggi di programmazione. I linguaggi interpretati stanno iniziando a svolgere un ruolo sempre più importante, poiché la crescente potenza dei personal computer inizia a fornire velocità sufficiente per l'esecuzione di programmi interpretati. E l'unico vantaggio significativo dei linguaggi di programmazione compilati è il codice ad alta velocità che creano. Quando la velocità di esecuzione del programma non è critica, la scelta più appropriata è un linguaggio interpretato, come strumento di programmazione più semplice e flessibile.

A questo proposito, è di particolare interesse considerare il relativamente nuovo linguaggio di programmazione Python (python), creato dal suo autore Guido van Rossum nei primi anni '90.

Informazioni generali su Python. Vantaggi e svantaggi


Python è un linguaggio di programmazione interpretato, nativamente orientato agli oggetti. È estremamente semplice e contiene un numero limitato di parole chiave, ma è molto flessibile ed espressivo. È un linguaggio di livello superiore rispetto a Pascal, C++ e, ovviamente, C, che si ottiene principalmente grazie a strutture di dati integrate di alto livello (elenchi, dizionari, tuple).

Vantaggi della lingua.
L'indubbio vantaggio è che l'interprete Python è implementato su quasi tutte le piattaforme e sistemi operativi. Il primo linguaggio di questo tipo era il C, ma i suoi tipi di dati potevano occupare diverse quantità di memoria su macchine diverse, e questo serviva da ostacolo nella scrittura di un programma veramente portatile. Python non ha questo svantaggio.

La successiva caratteristica importante è l'estensibilità del linguaggio, che è di grande importanza e, come scrive lo stesso autore, il linguaggio è stato concepito proprio come estensibile. Ciò significa che c'è spazio per il miglioramento del linguaggio da parte di tutti i programmatori interessati. L'interprete è scritto in C e il codice sorgente è disponibile per qualsiasi manipolazione. Se necessario, puoi inserirlo nel tuo programma e usarlo come shell integrata. Oppure, scrivendo le tue aggiunte a Python in C e compilando il programma, ottieni un interprete "esteso" con nuove funzionalità.

Il prossimo vantaggio è la presenza di un gran numero di moduli plug-in che forniscono varie funzionalità aggiuntive. Tali moduli sono scritti in C e nello stesso Python e possono essere sviluppati da tutti i programmatori sufficientemente esperti. I seguenti moduli sono esempi:

  • Python numerico: capacità matematiche avanzate come manipolazioni con vettori e matrici interi;
  • Tkinter - creazione di applicazioni utilizzando un'interfaccia utente grafica (GUI) basata sull'interfaccia Tk ampiamente utilizzata su X-Windows;
  • OpenGL - uso dell'ampia libreria di modellazione grafica di oggetti bi e tridimensionali Open Graphics Library di Silicon Graphics Inc. Questo standard è supportato, tra l'altro, in sistemi operativi comuni come Microsoft Windows 95 OSR 2, 98 e Windows NT 4.0.
Difetti linguistici.
L'unico inconveniente notato dall'autore è la velocità di esecuzione relativamente bassa del programma Python, dovuta alla sua interpretabilità. Tuttavia, a nostro avviso, questo è più che ripagato dai vantaggi del linguaggio quando si scrivono programmi che non sono molto critici per la velocità di esecuzione.

Panoramica delle funzionalità


1. Python, a differenza di molti linguaggi (Pascal, C++, Java, ecc.), non richiede dichiarazioni di variabili. Vengono creati nel luogo della loro inizializzazione, ad es. la prima volta che a una variabile viene assegnato un valore. Ciò significa che il tipo della variabile è determinato dal tipo del valore assegnato. Sotto questo aspetto, Python assomiglia a Basic.
Il tipo di variabile non è immutabile. Qualsiasi assegnazione ad essa è corretta e questo porta solo al fatto che il tipo della variabile diventa il tipo del nuovo valore assegnato.

2. In linguaggi come Pascal, C, C++ l'organizzazione delle liste presentava alcune difficoltà. Per implementarli, è stato necessario studiare bene i principi del lavoro con i puntatori e la memoria dinamica. E anche con una buona qualifica, un programmatore, re-implementando ogni volta i meccanismi per creare, lavorare e distruggere liste, potrebbe facilmente commettere errori sottili. In considerazione di ciò, sono stati creati alcuni strumenti per lavorare con le liste. Ad esempio, Delphi Pascal ha una classe TList che implementa le liste; STL (Standard Template Library) è stato sviluppato per C++, contenente strutture come vettori, elenchi, insiemi, dizionari, stack e code. Tuttavia, tali strutture non sono disponibili in tutte le lingue e nelle loro implementazioni.

Una delle caratteristiche distintive di Python è la presenza di tali strutture integrate nel linguaggio stesso come tuple(tupla) liste(elenco) e dizionari(dizionario), che a volte sono chiamati carte(carta geografica). Consideriamoli più in dettaglio.

  1. Tupla . Ricorda in qualche modo un array: è composto da elementi e ha una lunghezza rigorosamente definita. Gli elementi possono essere qualsiasi valore: semplici costanti o oggetti. A differenza di un array, gli elementi di una tupla non sono necessariamente omogenei. E ciò che distingue una tupla da una lista è che la tupla non può essere modificata, ad es. non possiamo assegnare qualcosa di nuovo all'i-esimo elemento della tupla e non possiamo aggiungere nuovi elementi. Pertanto, una tupla può essere chiamata costante di lista. Sintatticamente, una tupla è specificata da un elenco separato da virgole di tutti gli elementi, tutti racchiusi tra parentesi:

  2. (1, 2, 5, 8)
    (3.14, 'stringa', -4)
    Tutti gli elementi sono indicizzati da zero. Per ottenere l'i-esimo elemento, è necessario specificare il nome della tupla seguito dall'indice i tra parentesi quadre. Esempio:
    t = (0, 1, 2, 3, 4)
    stampa t, t[-1], t[-3]
    Risultato: 0 4 2
    Pertanto, una tupla potrebbe essere chiamata vettore costante se i suoi elementi fossero sempre omogenei.
  3. Elenco . Un buon esempio particolare di elenco è una stringa Turbo Pascal. Gli elementi della stringa sono caratteri singoli, la sua lunghezza non è fissa, è possibile eliminare elementi o, al contrario, inserirli in un punto qualsiasi della stringa. Gli elementi dell'elenco possono essere oggetti arbitrari, non necessariamente dello stesso tipo. Per creare una lista è sufficiente elencare i suoi elementi separati da virgole, racchiudendo il tutto tra parentesi quadre:


  4. ['stringa', (0,1,8), ]
    A differenza di una tupla, le liste possono essere modificate a piacimento. Gli elementi sono accessibili allo stesso modo delle tuple. Esempio:
    l = ]
    stampa l, l, l[-2], l[-1]
    Risultato: 1 s (2.8) 0
  5. Dizionario . Ricorda il tipo record (record) in Pascal o strutture (struttura) in C. Tuttavia, invece dello schema "campo record" - "valore", qui viene utilizzato "chiave" - ​​"valore". Un dizionario è un insieme di coppie "chiave"-"valore". Qui la "chiave" è una costante di qualsiasi tipo (ma si usano principalmente le stringhe), serve a nominare (indicizzare) qualche valore ad essa corrispondente (che può essere modificato).

  6. Un dizionario viene creato elencando i suoi elementi (coppie chiave-valore separate da due punti), separati da virgole e racchiudendoli tutti tra parentesi graffe. Per accedere ad un determinato valore è necessario scrivere la chiave corrispondente tra parentesi quadre dopo il nome del dizionario. Esempio:
    d = ("a": 1, "b": 3, 5: 3.14, "nome": "Giovanni")
    d["b"] = d
    print d["a"], d["b"], d, d["nome"]
    Risultato: 1 3.14 3.14 Giovanni
    Per aggiungere una nuova coppia "chiave"-"valore" è sufficiente assegnare il valore corrispondente all'elemento con la nuova chiave:
    d["nuovo"] = "nuovo valore"
    stampa d
    Risultato: ("a":1, "b":3, 5:3.14, "name":"Giovanni", "nuovo":"nuovo valore")

3. A differenza di Pascal, C, C++, Python non supporta i puntatori, la memoria dinamica e l'aritmetica degli indirizzi. In questo è simile a Java. Come sapete, i puntatori sono una fonte di sottili errori e lavorare con essi è più legato alla programmazione a basso livello. Per maggiore affidabilità e semplicità, non sono stati inclusi in Python.

4. Una delle caratteristiche di Python è il modo in cui una variabile viene assegnata a un'altra, ad es. quando su entrambi i lati dell'operatore " = " sono variabili.

Seguendo Timothy Budd (), chiameremo semantica del puntatore il caso in cui l'assegnazione porti solo all'assegnazione di un riferimento (puntatore), es. la nuova variabile diventa solo un altro nome che denota la stessa posizione di memoria della vecchia variabile. In questo caso, una modifica del valore indicato dalla nuova variabile comporterà una modifica del valore della vecchia, perché in realtà significano la stessa cosa.

Quando l'assegnazione porta alla creazione di un nuovo oggetto (qui, un oggetto nel senso di un pezzo di memoria per memorizzare un valore di qualche tipo) e copiare il contenuto della variabile che gli viene assegnata, chiameremo questo caso copia semantica. Pertanto, se è attiva la copia della semantica, le variabili su entrambi i lati del segno "=" indicheranno due oggetti indipendenti con lo stesso contenuto. E qui, una successiva modifica di una variabile non influirà in alcun modo sull'altra.

L'assegnazione in Python funziona in questo modo: if assegnabile l'oggetto è un'istanza di tipi come numeri o stringhe, quindi si applica la semantica della copia, ma se il lato destro è un'istanza di una classe, elenco, dizionario o tupla, si applica la semantica del puntatore. Esempio:
a = 2; b = a; b = 3
print " copia semantica: a=", a, "b=", b
un = ; b = a; b = 3
print " semantica del puntatore: a=", a, "b=", b
Risultato:
copia semantica: a= 2 b= 3
semantica del puntatore: a= b=

Per quelli di voi che vogliono sapere cosa sta succedendo qui, vi darò una versione diversa del compito in Python. Se in linguaggi come Basic, Pascal, C/C++ abbiamo a che fare con variabili di "capacità" e costanti in essi memorizzate (numerico, carattere, stringa - non importa), e l'operazione di assegnazione significava "entrare" nel costante nella variabile assegnata , quindi in Python dobbiamo già lavorare con i "nomi" delle variabili e gli oggetti da loro nominati. (Nota qualche analogia con Prolog?) Cos'è un oggetto in Python? Questo è tutto ciò a cui può essere dato un nome: numeri, stringhe, elenchi, dizionari, istanze di classi (che in Object Pascal sono chiamate oggetti), le classi stesse (!), funzioni, moduli, ecc. Quindi, quando si assegna un oggetto a una variabile, la variabile diventa il suo "nome" e l'oggetto può avere un numero qualsiasi di tali "nomi" e tutti non dipendono l'uno dall'altro.

Ora, gli oggetti sono divisi in modificabili (mutabili) e immutabili. Mutevole: quelli che possono modificare il loro "contenuto interno", ad esempio elenchi, dizionari, istanze di classi. E quelli immutabili - come numeri, tuple, stringhe (sì, anche stringhe; puoi assegnare a una variabile una nuova stringa ottenuta dalla vecchia, ma non puoi modificare la vecchia stringa stessa).

Quindi, se scriviamo un = ; b = a; b = 3, Python lo interpreta come:

  • dare all'oggetto una "lista" " nome un ;
  • dai a questo oggetto un altro nome - b ;
  • modificare l'elemento nullo dell'oggetto.

  • Questa è la semantica "pseudo" dei puntatori.

    E l'ultima cosa da dire su questo: sebbene non sia possibile modificare la struttura della tupla, i componenti mutabili in essa contenuti sono ancora disponibili per la modifica:

    T = (1, 2, , "string") t = 6 # non consentito del t # anche un errore t = 0 # valido, ora la terza componente è una lista t = "S" # errore: le stringhe non sono modificabili

    5. Abbastanza originale è il modo in cui gli operatori sono raggruppati in Python. Pascal usa le parentesi per questo. inizio-fine, in C, C++, Java - parentesi graffe (), in Basic vengono utilizzate le terminazioni di chiusura dei costrutti del linguaggio (NEXT, WEND, END IF, END SUB).
    Nel linguaggio Python tutto è molto più semplice: la selezione di un blocco di istruzioni si effettua spostando il gruppo selezionato di uno o più spazi o tabulazioni a destra rispetto all'intestazione della struttura a cui questo blocco farà riferimento. Per esempio:

    se x > 0: stampa ' x > 0 ' x = x - 8 altrimenti: stampa ' x<= 0 ’ x = 0 Pertanto, un buon stile di scrittura dei programmi, richiesto dagli insegnanti di Pascal, C ++, Java, ecc., viene acquisito qui fin dall'inizio, perché semplicemente non funziona in modo diverso.

    Descrizione della lingua. Strutture di controllo



    Gestione delle eccezioni


    Tentativo:
    <оператор1>
    [tranne[<исключение> [, <переменная>] ]:
    <оператор2>]
    [altro <оператор3>]
    Eseguita<оператор1>se si verifica un'eccezione<исключение>, poi<оператор2>. Se una<исключение>ha un valore, è assegnato<переменной>.
    In caso di completamento con successo<оператора1>, eseguita<оператор3>.
    Tentativo:
    <оператор1>
    finalmente:
    <оператор2>
    Eseguita<оператор1>. Se non sono state generate eccezioni, allora<оператор2>. Altrimenti,<оператор2>e viene generata immediatamente un'eccezione.
    aumentare <исключение> [<значение>] Genera un'eccezione<исключение>con parametro<значение>.

    Le eccezioni sono solo stringhe. Esempio:

    My_ex = 'indice errato' try: if bad: raise my_ex, bad tranne my_ex, value: print ' Error ', value

    Dichiarazione di funzione



    Dichiarazione di classe



    Classe cMyClass: def __init__(self, val): self.value = val # def printVal (self): print ' value = ', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal () obj.value = "(!LANG: stringa ora" obj.printVal () !} Risultato:
    valore = 3,14
    valore = stringa ora

    Operatori per tutti i tipi di sequenze (liste, tuple, stringhe)


    Operatori per elenchi (elenco)


    s[i] = x L'i-esimo elemento di s è sostituito da x.
    s = t parte degli elementi di s da i a j-1 è sostituita da t (t può anche essere una lista).
    del s rimuove la parte s (come s = ).
    s.append(x) aggiunge l'elemento x alla fine di s.
    s.count(x) restituisce il numero di elementi di s uguale a x.
    s.indice(x) restituisce la i più piccola tale che s[i]==x.
    s.insert(i,j) la parte di s, che inizia dall'i-esimo elemento, viene spostata a destra, e s[i] viene assegnato a x.
    s.rimuovi(x) come del s[ s.index(x) ] - rimuove il primo elemento di s uguale a x.
    al contrario() scrive la stringa in ordine inverso
    ordinare() ordina l'elenco in ordine crescente.

    Operatori per dizionari


    Oggetti file


    Creato dalla funzione integrata aprire()(vedi descrizione sotto). Per esempio: f = open('mydan.dat','r').
    Metodi:

    Altri elementi del linguaggio e funzioni integrate


    = Incarico.
    Stampa [ < c1 > [, < c2 >]* [, ] ] emette valori< c1 >, < c2 >all'uscita standard. Mette uno spazio tra gli argomenti. Se non c'è una virgola alla fine dell'elenco di argomenti, salta a una nuova riga.
    addominali(x) restituisce il valore assoluto di x.
    applicare( f , <аргументы>) chiama la funzione (o metodo) f con< аргументами >.
    chr(i) restituisce una singola stringa di caratteri con codice ASCII i.
    cmp(x, y) restituisce un valore negativo, zero o positivo se, rispettivamente, x<, ==, или >di y.
    divmod(a,b) restituisce una tupla (a/b, a%b), dove a/b è un div b (la parte intera del risultato della divisione), a%b è un mod b (il resto della divisione).
    valutazione(i)
    restituisce l'oggetto indicato in s come stringa. S può contenere qualsiasi struttura linguistica. S può anche essere un oggetto codice, ad esempio: x = 1 ; incr_x = eval("x+1") .
    galleggiante(x) restituisce un valore reale uguale al numero x.
    esadecimale(x) restituisce una stringa contenente la rappresentazione esadecimale del numero x.
    ingresso(<строка>) visualizza<строку>, legge e restituisce un valore dallo standard input.
    int(x) restituisce il valore intero di x.
    lente/i restituisce la lunghezza (numero di elementi) dell'oggetto.
    lungo(x) restituisce un valore di tipo intero lungo x.
    massimo(i), min(i) restituisce il più grande e il più piccolo degli elementi di una sequenza s (cioè, s è una stringa, una lista o una tupla).
    ott(x) restituisce una stringa contenente una rappresentazione del numero x.
    aprire(<имя файла>, <режим>='r' ) restituisce un oggetto file aperto per la lettura.<режим>= 'w' - aperto per la scrittura.
    ord(c) restituisce il codice carattere ASCII (stringa di lunghezza 1) c.
    po (x, y) restituisce x alla potenza di y.
    gamma(<начало>, <конец>, <шаг>) restituisce un elenco di numeri interi maggiori o uguali<начало>e più piccolo di<конец>generato con un dato<шагом>.
    raw_input( [ <текст> ] ) visualizza<текст>allo standard output e legge una stringa dallo standard input.
    tondo (x, n=0) restituisce una x reale arrotondata all'ennesima cifra decimale.
    str (<объект>) restituisce una rappresentazione di stringa<объекта>.
    genere(<объект>) restituisce il tipo dell'oggetto.
    Ad esempio: if type(x) == type(''): print ' this is a string '
    xrange (<начало>, <конец>, <шаг>) simile all'intervallo, ma simula solo un elenco senza crearne uno. Usato in un ciclo for.

    Funzioni speciali per lavorare con le liste


    filtro(<функция>, <список>) restituisce un elenco di tali elementi<спиcка>, per cui<функция>assume il valore "vero".
    carta geografica(<функция>, <список>) si applica<функцию>ad ogni elemento<списка>e restituisce un elenco di risultati.
    ridurre( f , <список>,
    [, <начальное значение> ] )
    restituisce il valore ottenuto "riducendo"<списка>funzione f. Ciò significa che esiste una variabile interna p, che viene inizializzata<начальным значением>, quindi, per ogni elemento<списка>, la funzione f viene chiamata con due parametri: p e l'elemento<списка>. Il risultato restituito da f viene assegnato a p. Dopo aver ripetuto tutto<списка>ridurre i rendimenti p.
    Utilizzando questa funzione è possibile, ad esempio, calcolare la somma degli elementi di una lista: def func (red, el): return red+el sum = riduci (func, , 0) # now sum == 15
    lambda [<список параметров>] : <выражение> Una funzione "anonima" che non ha un nome proprio e viene scritta nel luogo della sua chiamata. Accetta i parametri specificati in<списке параметров>e restituisce un valore<выражения>. Utilizzato per filtrare, ridurre, mappare. Per esempio: >>>filtro di stampa (lambda x: x>3, ) >>>mappa di stampa (lambda x: x*2, ) >>>p=riduci (lambda r, x: r*x, , 1) >>> stampa p 24

    Importare moduli



    Modulo matematico standard


    Variabili: pi, e.
    Funzioni(simile alle funzioni del linguaggio C):

    acos(x) contanti(x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) registro(x) abbronzatura(x)
    atan(x) fabbri(x) peccato(x) frex(x)
    atan2(x,y) piano(x) pow(x,y) modf(x)
    soffitto(x) fmod(x,y) peccato(x)
    cos(x) log10(x) tanh(x)

    modulo stringa


    Funzioni:

    Conclusione


    Per la semplicità e flessibilità del linguaggio Python, può essere consigliato ad utenti (matematici, fisici, economisti, ecc.) che non sono programmatori, ma che utilizzano la tecnologia informatica e la programmazione nel loro lavoro.
    I programmi in Python vengono sviluppati in media da una e mezza a due (e talvolta da due a tre) volte più velocemente che nei linguaggi compilati (C, C++, Pascal). Pertanto, il linguaggio può essere di non poco interesse per i programmatori professionisti che sviluppano applicazioni non critiche per la velocità di esecuzione, nonché per programmi che utilizzano strutture dati complesse. In particolare Python si è dimostrato efficace nello sviluppo di programmi per lavorare con i grafici, generando alberi.

    Letteratura


    1. Budd T. Programmazione orientata agli oggetti. - San Pietroburgo: Pietro, 1997.
    2. Guido van Rossum. Esercitazione Python. (www.python.org)
    3. Chris Hoffman. Una guida rapida di Python. (www.python.org)
    4. Guido van Rossum. Riferimento alla libreria Python. (www.python.org)
    5. Guido van Rossum. Manuale di riferimento Python. (www.python.org)
    6. Guido van Rossum. Workshop sulla programmazione in Python. (http://sultan.da.ru)

    In questa raccolta, abbiamo raccolto i libri più utili sul linguaggio di programmazione Python che aiuteranno sia i principianti che i programmatori esperti ad imparare.
    Qui troverai materiali per la creazione di applicazioni, nonché tutorial per aiutarti a familiarizzare con gli strumenti, padroneggiare i database e migliorare le tue capacità professionali.

    Sezioni:

    Per principianti

    Il manuale è un'introduzione eccellente e riconosciuta a livello internazionale al linguaggio Python. Ti insegnerà rapidamente come scrivere codice efficiente e di alta qualità. Adatto sia a programmatori principianti che a chi ha già esperienza nell'uso di altre lingue. Oltre alla teoria, il libro contiene test, esercizi e illustrazioni utili: tutto ciò di cui hai bisogno per imparare Python 2 e 3. Inoltre, conoscerai alcune funzionalità avanzate del linguaggio che non sono ancora padroneggiate da molti specialisti.

    Python è un linguaggio di programmazione multipiattaforma multi-paradigma che recentemente è diventato particolarmente popolare in Occidente e in grandi aziende come Google, Apple e Microsoft. Con la sua sintassi minimalista e il potente kernel, è uno dei linguaggi di programmazione più performanti e leggibili al mondo.

    Dopo aver letto questo libro, imparerai rapidamente e in modo divertente le basi del linguaggio, quindi passerai alla gestione delle eccezioni, allo sviluppo web, all'utilizzo di SQL, all'elaborazione dei dati e a Google App Engine. Imparerai anche come scrivere app Android e molto altro sulla potenza che Python ti offre.

    Un altro acclamato libro Python con 52 esercizi curati per l'apprendimento delle lingue. Dopo averli smontati, capirai come funziona il linguaggio, come scrivere correttamente i programmi e come correggere i tuoi errori. Vengono trattati i seguenti argomenti:

    • Impostazione dell'ambiente;
    • organizzazione del codice;
    • Matematica di base;
    • variabili;
    • Righe e testo;
    • Interazione con gli utenti;
    • Lavorare con i file;
    • Cicli e logica;
    • Strutture dati;
    • Sviluppo software;
    • Eredità e composizione;
    • Moduli, classi e oggetti;
    • pacchi;
    • debug;
    • Automazione dei test;
    • Sviluppo di giochi;
    • Sviluppo web.

    Questo libro è destinato ai principianti per imparare a programmare. Utilizza un approccio molto standard all'apprendimento, ma un linguaggio non standard 🙂 Vale la pena notare che questo è più un libro sulle basi della programmazione che su Python.

    Python Programming for Beginners è un ottimo libro per iniziare. È una guida dettagliata scritta appositamente per i principianti che vogliono padroneggiare questa lingua. Dopo aver appreso le nozioni di base, passerai alla programmazione orientata agli oggetti e allo scripting CGI per elaborare i dati dei moduli Web, apprendere come creare applicazioni grafiche con finestre e distribuirle ad altri dispositivi.

    Con l'aiuto di questo tutorial, sarai in grado di seguire tutti i passaggi dall'installazione di un interprete all'esecuzione e al debug di applicazioni a tutti gli effetti.

    "Python Crash Course" è un'introduzione completa al linguaggio Python. Nella prima metà del libro, verranno introdotti i concetti di base della lingua, come elenchi, dizionari, classi e cicli, e imparerai a scrivere codice pulito e leggibile. Inoltre, imparerai come testare i tuoi programmi. Nella seconda metà del libro ti verrà chiesto di mettere in pratica le tue conoscenze scrivendo 3 progetti: un gioco arcade come Space Invaders, un'applicazione di visualizzazione dei dati e una semplice applicazione web.

    Questo è un cheat sheet tascabile molto pratico realizzato per Python 3.4 e 2.7. In esso troverai le informazioni più necessarie su vari aspetti della lingua. Argomenti trattati:

    • Tipi di oggetti incorporati;
    • Espressioni e sintassi per la creazione e l'elaborazione di oggetti;
    • Funzioni e moduli;
    • OOP (abbiamo un separato);
    • Funzioni integrate, eccezioni e attributi;
    • Metodi di sovraccarico dell'operatore;
    • Moduli ed estensioni popolari;
    • Opzioni della riga di comando e strumenti di sviluppo;
    • Suggerimenti;
    • API di database SQL Python.

    Un libro per imparare Python con tonnellate di esempi pratici.

    Esempi pratici possono essere trovati nella nostra sezione. Ad esempio, leggi la nostra auto-implementazione della funzione zip.

    Lo scopo di questo libro è introdurre il lettore agli strumenti popolari e alle varie migliori pratiche nella comunità open source per la scrittura di codice. Le basi del linguaggio Python non sono trattate in questo libro, perché non si tratta affatto di questo.

    La prima parte del libro contiene una descrizione dei vari editor di testo e ambienti di sviluppo che possono essere usati per scrivere programmi Python, oltre a molti tipi di interpreti per vari sistemi. La seconda parte del libro parla dello stile di codifica accettato nella comunità open source. La terza parte del libro contiene una breve panoramica delle numerose librerie Python utilizzate nella maggior parte dei progetti open source.

    La principale differenza di questo libro rispetto a tutti gli altri manuali per principianti per l'apprendimento di Python è che, parallelamente allo studio del materiale teorico, il lettore conosce l'implementazione di vari progetti di gioco. In questo modo, il futuro programmatore sarà in grado di comprendere meglio come alcune funzionalità del linguaggio vengono utilizzate in progetti reali.

    Il libro copre le basi sia del linguaggio Python che della programmazione in generale. Ottimo libro per una prima conoscenza di questa lingua.

    Per avanzato

    Se vuoi migrare a Python 3 o aggiornare correttamente il vecchio codice Python 2, allora questo libro fa per te. E anche per te: trasferire un progetto da Python 2 a Python 3 senza problemi.

    Nel libro troverai molti esempi pratici in Python 3.3, ognuno dei quali viene analizzato in dettaglio. Vengono trattati i seguenti argomenti:

      • Strutture dati e algoritmi;
      • Righe e testo;
      • Numeri, date e orari;
      • Iteratori e generatori;
      • File e operazioni di lettura/scrittura;
      • Codifica ed elaborazione dati;
      • Funzioni;
      • Classi e oggetti;
      • Metaprogrammazione;
      • Moduli e pacchetti;
      • programmazione web;
      • competitività;
      • Amministrazione di sistema;
      • Test e debugging;
      • estensioni C.

    Leggendo questo libro, svilupperai un'applicazione web mentre imparerai i vantaggi pratici dello sviluppo basato su test. Tratterai argomenti come l'integrazione di database, strumenti di automazione JS, NoSQL, socket Web e programmazione asincrona.

    Il libro tratta in dettaglio Python 3: tipi di dati, operatori, condizioni, cicli, espressioni regolari, funzioni, strumenti di programmazione orientati agli oggetti, lavoro con file e directory, moduli di libreria standard comunemente usati. Inoltre, il libro si concentra anche sul database SQLite, sull'interfaccia di accesso al database e su come ottenere dati da Internet.

    La seconda parte del libro è interamente dedicata alla libreria PyQt 5, che permette di creare applicazioni con interfaccia grafica in Python. Qui consideriamo strumenti per l'elaborazione di segnali ed eventi, gestione delle proprietà delle finestre, sviluppo di applicazioni multi-thread, descrizione dei componenti principali (pulsanti, campi di testo, elenchi, tabelle, menu, barre degli strumenti, ecc.), opzioni per il loro posizionamento all'interno della finestra, strumenti per lavorare con i dati di database, multimediali, stampare documenti ed esportarli in formato Adobe PDF.

    I tuoi programmi Python potrebbero funzionare, ma possono essere eseguiti più velocemente. Questa guida pratica ti aiuterà a comprendere meglio la struttura del linguaggio e imparerai come trovare colli di bottiglia nel codice e aumentare la velocità dei programmi che funzionano con grandi quantità di dati.

    Come suggerisce il titolo, l'obiettivo di questo libro è fornire la comprensione più completa del framework di sviluppo di applicazioni web Django. A causa del fatto che il libro è stato pubblicato in russo nel 2010, si tratta di una versione obsoleta del framework, Django 1.1. Tuttavia, il libro è consigliato per la lettura, perché può imparare le basi di Django. E non ci sono praticamente buoni libri su questo framework in russo, tranne questo.

    Gli autori Adrian Holovaty e Jacob Kaplan-Moss danno uno sguardo dettagliato ai componenti del framework. Il libro contiene una grande quantità di materiale sullo sviluppo di risorse web con Django, dalle nozioni di base ad argomenti specializzati come la generazione di PDF e RSS, la sicurezza, la memorizzazione nella cache e l'internazionalizzazione. Prima di leggere il libro, si consiglia di padroneggiare i concetti di base dello sviluppo web.

    Sviluppo del gioco

    "Making Games with Python & Pygame" è un libro che si concentra sulla libreria di sviluppo di giochi Pygame. Ogni capitolo fornisce il codice sorgente completo per il nuovo gioco e spiegazioni dettagliate dei principi di sviluppo utilizzati.

    Invent Your Own Computer Games with Python ti insegna come programmare in Python usando lo sviluppo di giochi come esempio. Nei giochi successivi, viene considerata la creazione di giochi bidimensionali utilizzando la libreria Pygame. Imparerai:

    • utilizzare loop, variabili ed espressioni logiche;
    • utilizzare strutture di dati come elenchi, dizionari e tuple;
    • eseguire il debug dei programmi e cercare gli errori;
    • scrivere una semplice IA per i giochi;
    • crea grafica e animazioni semplici per i tuoi giochi.

    Analisi dei dati e apprendimento automatico

    Migliora le tue abilità lavorando con strutture di dati e algoritmi in un modo nuovo: scientifico. Esplora esempi di sistemi complessi con spiegazioni chiare. Il libro offre:

    • apprendere concetti come array NumPy, metodi SciPy, elaborazione del segnale, trasformate di Fourier veloci e tabelle hash;
    • conoscere modelli astratti di sistemi fisici complessi, frattali e macchine di Turing;
    • esplorare leggi e teorie scientifiche;
    • analizzare esempi di problemi complessi.

    In questo libro il linguaggio Python è considerato uno strumento per risolvere problemi che richiedono calcoli con l'elaborazione di grandi quantità di dati. L'obiettivo di questo libro è insegnare al lettore come utilizzare lo stack di data mining Python per archiviare, manipolare e comprendere i dati in modo efficace.

    Ogni capitolo del libro è dedicato a una libreria specifica per lavorare con i big data. Il primo capitolo tratta IPython e Jupyter, il secondo NumPy e il terzo Pandas. Il capitolo 4 riguarda Matplotlib, il capitolo 5 riguarda Scikit-Learn.

    "Python for Data Analysis" parla di tutti i modi per elaborare i dati. Il libro è un'eccellente introduzione all'informatica scientifica. Ecco cosa imparerai:

    • shell IPython interattiva;
    • libreria per calcoli numerici NumPy:
    • libreria di analisi dei dati dei panda;
    • libreria di stampa matplotlib.

    Imparerai anche come misurare i dati nel tempo e risolvere problemi analitici in molte aree della scienza.

    Questo libro propone di esplorare vari metodi di analisi dei dati utilizzando Python. Ecco cosa imparerai dopo aver letto:

    • gestire i dati;
    • risolvere problemi di scienza dei dati;
    • creare visualizzazioni di alta qualità;
    • applicare regressioni lineari per valutare le relazioni tra variabili;
    • creare sistemi di raccomandazione;
    • gestire i big data.

    Questo manuale spiega i principi dell'elaborazione del linguaggio naturale in un modo di facile comprensione. Imparerai come scrivere programmi in grado di elaborare grandi insiemi di testo non strutturato, accedere a vasti set di dati e acquisire familiarità con gli algoritmi di base.

    Altro

    Se hai mai passato ore a rinominare file o aggiornare centinaia di celle di fogli di calcolo, sai quanto può essere estenuante. Ti piacerebbe imparare come automatizzare tali processi? Il libro "Automatizzare le cose noiose con Python" spiega come creare programmi che risolveranno vari compiti di routine in pochi minuti. Dopo aver letto, imparerai come automatizzare i seguenti processi:

    • cercare il testo specificato nei file;
    • creare, aggiornare, spostare e rinominare file e cartelle;
    • ricerca e download di dati sul Web;
    • aggiornamento e formattazione dei dati nelle tabelle Excel;
    • dividere, unire e crittografare file PDF;
    • invio di lettere e notifiche;
    • compilazione di moduli online.

    Un ottimo libro con una soglia minima di ingresso. Racconta di più sulla biologia che sul linguaggio, ma tornerà sicuramente utile a tutti coloro che lavorano in questo campo. È dotato di un gran numero di esempi smontati di varia complessità.

    Questo libro copre le basi della programmazione del sistema Raspberry Pi. L'autore ha già compilato molti script per te e ha anche fornito una guida comprensibile e dettagliata per crearne uno tuo. Oltre ai consueti esercizi, sei invitato a realizzare tre progetti: il gioco Hangman, un orologio a LED e un robot controllato da un programma.

    "Hacking Secret Ciphers with Python" non solo racconta la storia dei cifrari esistenti, ma ti insegna anche come creare i tuoi programmi per crittografare e decifrare i cifrari. Ottimo libro per imparare le basi della crittografia.

    Condividi utili libri Python nei commenti!

    Articoli correlati in alto