[Python-es] Duda con función M.c.d.

Elio Rincón e1987ebrb en gmail.com
Lun Dic 17 21:29:52 CET 2012


Un pequeño aporte para ayudarnos. Cualquier sugerencía es aceptada.

In [116]: def f(a, b):
    return a and b or 7
   .....:

In [117]: f(0, 1)
Out[117]: 7

In [118]: f(0, 0)
Out[118]: 7

In [129]: f(2, 0)
Out[129]: 7

In [120]: f(2, 1)
Out[120]: 1

In [121]: f(2, 8)
Out[121]: 8

In [122]: def f(a, b):
    return (a and b) or 7
   .....:

In [123]: f(0, 1)
Out[123]: 7

In [124]: f(0, 0)
Out[124]: 7

In [127]: f(2, 0)
Out[127]: 7

In [125]: f(2, 1)
Out[125]: 1

In [126]: f(2, 8)
Out[126]: 8


Como puedes ver, si a y b son distintos de cero entonces retorna b, de lo
contrario retorna 7.

Saludos.


El 17 de diciembre de 2012 14:55, G V <nadaird en gmail.com> escribió:

> Además de mirar acerca de la recursividad, te recomiendo hacer pruebas con
> distintos valores y el operador or:
> None or 5
> 5 or None
> '' or 'hi'
> Etc.
> El 17/12/2012 18:46, "Jose Caballero" <jcaballero.hep en gmail.com> escribió:
>
>  es una funcion recursiva.
>> En cada paso, si b no es 0, devuelve el max comun denominador de b y el
>> resto de a entre b. Si b es 0, devuelve a.
>>
>>
>>
>> El 17 de diciembre de 2012 12:13, Carlos Agulló Calvo <
>> cm.agullo en gmail.com> escribió:
>>
>>> Buenas tardes,
>>>
>>> practicando un poco python en la página de projecteuler he visto la
>>> siguiente función:
>>>
>>> def Mcd(a,b): return b and Mcd(b, a % b) or a
>>>
>>> pero no entiendo cómo funciona, ¿alguien podría explicármelo?
>>> Muchas gracias por adelantado
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20121217/5147fef5/attachment.html>


Más información sobre la lista de distribución Python-es