# data[].attributes.body
# questo è un semplice
# gioco di testa o croce
# che, data la nostra
# scelta ci dice se
# abbiamo vinto o perso
# seguendo scelte random
# del computer

# data[].attributes.body
import time
import random

# data[].attributes.body
POSS = ["Testa", "Croce"]

# data[].attributes.body
def Inizio():
 print("Tenta la fortuna! Testa o Croce? (0 o 1)")

def risposta(guess, vinc):
 if guess == vinc:
   print("Congratulazioni! Hai indovinato.")
 else:
   print("Mi dispiace! è uscito " + str(vinc)+ " ")

# data[].attributes.body
playagain = "si"
while playagain == "si" or playagain == "sì":
 Inizio()
 guess = input()

 dato =random.randint(0,1)
 vinc = POSS[dato]
 risposta(guess, vinc)

 print("\nVuoi giocare di nuovo?\n   (si)  (no)")
 playagain = input()

# data[].attributes.body
input()

# data[].attributes.body
Quando si scrive un programma in python, specialmente riferendosi ad esso per la risoluzione di un problema, è bene sempre scrivere un commento introduttivo, spiegando cosa si stia per eseguire

# data[].attributes.body
Non sempre è necessario riscrivere da zero le operazioni da compiere, così come vi possono essere strumenti che possiamo riutilizzare da altri programmi o da codice predisposto appositamente. I moduli sono per l'appunto collezioni di operazioni disponibili esternamente e riutilizzabili, a patto di richiamarli all'interno del listato corrente tramite l'operazione di import.

# data[].attributes.body
Vi può essere la necessità di dichiarare variabili che non vogliamo mutino il loro contenuto durante l'esecuzione, ma che siano disponibili per l'accesso in tutto il programma. Queste sono le costanti, che rappresentiamo allo stesso modo delle variabili classiche, seppure scegliendo di scriverne il nome interamente in maiuscolo. N.B.: a differenza di altri linguaggi, non vi è un meccanismo che ne impedisca automaticamente la modifica, ma starà a noi non mutarne il contenuto durante l'esecuzione.

# data[].attributes.body
Se il nostro programma tenderà a dover ripetere alcune operazioni, sarebbe opportuno predisporre in partenza che venissero racchiuse in collezioni ben definite di operazioni tra loro pertinenti, alle quali assegnare un nome affinché siano facilmente riutilizzabili quando necessario. In questa parte, tali collezioni, dette funzioni, sono create in modo tale da utilizzarle nel codice principale ove richiesto.

# data[].attributes.body
Il codice principale è la sezione che racchiude il flusso delle istruzioni che regolano l'andamento di tutto il programma costruito per risolvere il problema, codificando l'algoritmo individuato. E' qui che creiamo le variabili principali di tutto il nostro codice, oltre a richiamare le funzioni dichiarate in precedenza, ed è questa la parte del listato senza la quale non avremmo alcunché in esecuzione una volta avviato l'eseguibile.

# data[].attributes.body
Un esempio di scrittura e debugging di un programma

# data[].attributes.attachment_link.title
Writing a Python Program - Simple Workflow

# data[].attributes.attachment_link.description
This 14-minute demo shows how to use two terminal windows to write and debug a simple Python program.

# data[].attributes.body
Un altro esempio di programma scritto in Python

# data[].attributes.attachment_link.description
Creiamo un'evoluzione del programma Quiz apprendendo una nuova istruzione Python, ovvero l'istruzione BREAK, che ci permette di interrompere un ciclo.

# data[].attributes.body
Il sito di riferimento per chi programmi in Python
qui

# data[].attributes.body
La parte del codice così indicata non è fondamentale all'esecuzione e potrebbe benissimo essere eliminata o tutt'al più riportata nel codice principale. Viene inserita, però, per consentire una migliore interazione con il programma al termine delle proprie operazioni principali: il terminale infatti, se avviato contestualmente all'esecuzione del codice, si chiude una volta terminate le istruzioni dell'algoritmo, non lasciando il tempo di visualizzare l'output; con quest'ultimo comando, invece, obblighiamo il terminale a rimanere in attesa di una pressione del tasto "invio", evitando che si possa chiudere senza il nostro assenso.

# data[].attributes.attachment_link.description
Join a game of kahoot here. Kahoot! is a free game-based learning platform that makes it fun to learn – any subject, in any language, on any device, for all ages!

# data[].attributes.attachment_link.description
Host a game of kahoot – put on your game show host hat and make learning awesome.

# data[].attributes.body
Per dimestichezza con la nomenclatura

# data[].attributes.attachment_link.description
Host a game of kahoot – put on your game show host hat and make learning awesome.