• Passa al contenuto principale
  • Skip to secondary menu
  • Passa alla barra laterale primaria
  • Passa al piè di pagina
openoikos

openoikos

Software e servizi CAD, GIS e Web Marketing

nanocaditalia
  • Home
  • Blog
    • CAD
    • GIS
    • Grafica
    • Web
    • Linux
    • Android
    • Programmazione
    • stampa 3D
    • Curation
  • Chi sono
  • Di che si parla
  • Forum
  • Contattami
Ti trovi qui: Home / Blog / Nelle spire del Python (lezione 5): eseguire operazioni ripetitive

Nelle spire del Python (lezione 5): eseguire operazioni ripetitive

1 commento

python for

logo pythonEccoci qui per il quinto incontro. Oggi scopriremo come si eseguono operazioni ripetitive in Python.
Abbiamo due possibilità di eseguire operazioni ripetitive.
Per un preciso numero di volte oppure fino a che non si verifica una data condizione.

Prima possibilità: il FOR
L’istruzione FOR ci permette di eseguire un certo numero di iterazioni come segue
>>> for a in range(1, 10):
>>> print a
e otterremo come outputpython for
1
2
3
4
5
6
7
8
9

La funzione predefinita range prende due parametri, il valore iniziale e quello finale (in realtà si deve aumentare di uno il valore finale, capiremo tra breve perché) ed esegue un numero di iterazioni pari alla differenza tra i due (10-1 = 9) assegnando alla variabile “a” il valore conteggiato.

Ovviamente possiamo fare di meglio, ad esempio stampare solo i numeri dispari, con il seguente codice
>>> for a in range(1, 10, 2):for-2
>>> print a

che stamperà
1
3
5
7
9

Il secondo parametro indica lo step, ovvero di quanto si deve incrementare il contatore.

Ora facciamo un giochino.
Chi è uso a risolvere le parole crociate conosce quelle definizioni tipo “Arteria senza pari”, dove si devono scrivere solo le lettere dispari della parola.
Vediamo come Python ci viene in aiuto:

>>> parola = “arteria”for-3
>>> for a in range(0,len(parola),2):
>>> print parola[a]

a
t
r
a
la funzione len() ci torna la lunghezza della stringa che gli passiamo.
Quindi range con parametri 0, len(parola) e 2 ci permette di avere gli indici (posizioni delle lettere) dispari.
L’istruzione print parola[a] stampa la lettera che ha indice a.

Come dire se avessimo scritto
>>> print parola[3] avremmo ottenuto come output
r
che è la lettera nella quarta posizione (tenete conto che gli indici in Python iniziano sempre da 0).

In seguito vedremo come possiamo ritagliare solo una parte (substring o sottostringa) da una stringa, ma per ora ci basta l’indice.

Abbiamo visto quindi come fare un ciclo con un numero di iterazioni predefinito. Che sia con un valore fisso o con la lunghezza di una stringa, sempre un preciso numero di iterazioni avranno luogo.

Abbiamo pero’ la possibilita’ di eseguire un numero di iterazioni indefinite che terminano al verificarsi di una determinata condizione. Un poco come se iniziassimo un loop infinito (ciclo senza un valore limite maggiore) e ne uscissimo se una istruzione if <condizione>: si verifica.
Che poi si potrebbe fare con le istruzioni:
>>> from random import randintfor-4
>>> for x in iter(int, 1):
>>> print x
>>> if randint(1,9) == 3:
>>> break

stamperà 0 per un numero indefinito di volte.

Rieseguite le istruzioni più volte, al limite racchiudendole in una funzione con codice come il seguente:
>>> from random import randint
>>> def funzione():
>>> for x in iter(int, 1):
>>> print x
>>> if randint(1,9) == 3:
>>> break
>>> funzione()

Chiamando più volte funzione() non dovrete digitare tutte le volte il gruppo di istruzioni.

L’istruzione from random import randint importa dal package random la funzione randint.
randint con due parametri (i due estremi) genera un numero intero casuale tra i due estremi.
Quando il numero generato è uguale a 3 l’istruzione break interrompe il ciclo.
Però fare le cose cosi’ non è molto comodo. Facciamo pertanto conoscenza con l’istruzione while.

Seconda possibilità: il WHILE

>>> from random import randint
>>> while randint(1,9) != 3:
>>> print “ciao”

stamperà ciao un numero variabile di volte, in base a quando verrà generato il numero 3 da randint.
Ovviamente se allargassimo da 9 a 90 o a 900 il limite le probabilita’ che il ciclo termini diminuiranno in maniera proporzionale.

Abbiamo visto quindi come con while fino a che non si verifica la condizione abbiamo un ciclo.
Qui la condizione la impostiamo dall’istruzione.
Un ciclo infinito con while possiamo averlo con
>>> while 1 == 1:
>>> print “ciao”

Arrivederci alla prossima settimana.

Altre letture utili:
Programmare con Python. Guida completa
Python
Programmare in Python

Articoli Correlati

  • Nelle spire del Python (lezione 2): variabili, funzioni e parametri
  • Nelle spire del Python (lezione 3): giocare con i numeri
  • Nelle spire del Python (lezione 4): come prendere decisioni

Archiviato in:Blog, Programmazione

Avatar

Info Carlos Catucci

Informatico (per l'esattezza sviluppo e analisi), giocatore di ruolo, animale sociale, anarchico, giullare. Insomma al peggio non c'e' mai fine.
Fedele al mondo dell'open source, da qualche anno prediligo il Python come linguaggio di programmazione, in abbinamento a Javascript per le applicazioni web.
Tra parentesi ho creato la community Pythonisti Anonimi.

Interazioni del lettore

Commenti

  1. AvatarFrancesco Caponi dice

    7 Marzo 2018 alle 22:41

    …ottimo lavoro queste lezioni su Pyton, spero ne seguiranno delle altre a queste cinque o, se già esistono come poterle avere ? .

    Rispondi

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Barra laterale primaria

Scarica NANOCAD gratis

Segui sui social

  • Facebook
  • LinkedIn
  • Twitter
  • Youtube

Segui Canale Telegram

Da leggere

software free mappe mentali

Mappe mentali per professionisti: 3 software free per disegnarle

Krita alternativa Photoshop

Krita, l’alternativa facile a Photoshop

Tags

android apps cad gratis cadgratis draftsight ebook forum gimp gis igm librecad linux nanocad open data professionista online qcad qgis sitetopo ubuntu video web

Footer

  • Chi sono
  • Privacy Policy
  • Cookie Policy

Articoli Recenti

  • Come disegnare in 3D con nanoCAD
  • Mappe mentali per professionisti: 3 software free per disegnarle
  • Krita, l’alternativa facile a Photoshop
  • Come ottimizzare le prestazioni video in nanoCAD
  • I migliori 3 software gratuiti per computi metrici

cerca

OPENOIKOS di Fabrizio Pieri - P.IVA 02181310562 - email: openoikos@gmail.com