dimarts, 18 de desembre de 2012

Exercicis de primària amb Python II

A la mateixa pàgina que l'exercici anterior trobem aquest exercici altre exercici ('Nou i mig 8', editorial teide):




Com es pot veure no necessita enunciat.

Per resoldre'l utilitzem diferents recursos del llenguatge, destaco els diccionaris, els bucles niuats i les expressions lambda:


from itertools import combinations

suma = { 'operacio': lambda x,y: x+y, 'nom':'suma' }
resta = { 'operacio': lambda x,y: x-y, 'nom':'resta' }

operacions = ( suma, resta )
for op1 in operacions:
    for op2 in operacions:
        for op3 in operacions:
            for op4 in operacions:
                r1 = op1['operacio']( 10, 9)
                r2 = op2['operacio']( r1, 15)
                r3 = op3['operacio']( r2, 7 )
                r4 = op4['operacio']( r3, 4 )
                if r4 == 19:
                    print op1['nom'], op2['nom'], op3['nom'], op4['nom']


Resultat:

resta suma suma resta

Cal dir que les itertools ens permeten substituir els bucles niuats per un sol bucle:

http://stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops




Altres Exercicis



Cap comentari:

Publica un comentari a l'entrada