32 lines
976 B
Python
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)
|