misc/python/fiera.py
2018-08-05 18:53:07 +02:00

32 lines
976 B
Python

## Alla fiera dell'est. (Versione sofisticata di 99 bottles of beer on the wall)
ritornello = "Alla fiera dell'est, per due soldi, \
un topolino mio padre comprò."
strofe = ["E venne {}{}", "{}{}{}{}{}"]
nomi = [
["topo", ["al ", "mercato ", "mio padre ", "comprò."]],
["gatto", "si mangiò"],
["cane", "morse"],
["bastone", "picchiò"],
["fuoco", "bruciò"],
["acqua", "spense"],
["toro", "bevve"],
["macellaio", "uccise"],
["Angelo della morte", "su"],
["Signore", "sul"]]
articolo = lambda x: "l'" if x in (5, 8) else "il "
congiunzione = lambda x: "" if x in (8, 9) else "che "
spazio = lambda x: "" if x == 9 else " "
print(ritornello)
for i, nome in enumerate(nomi[1::]):
print(strofe[0].format(articolo(i + 1), nome[0]), end=" ")
for k in range(i + 1, 0, -1):
print(strofe[1].format(
congiunzione(k), nomi[k][1],
spazio(k), articolo(k - 1),
nomi[k - 1][0]), end=" ")
print(strofe[1].format(congiunzione(0), *nomi[0][1]))
print(ritornello)