[Programación]Programar opción por defecto en python

galli.87 en gmail.com galli.87 en gmail.com
Lun Ago 26 13:19:10 ART 2013


emilianogavilan en gmail.com writes:

>    >> El 14/08/2013 03:34 p.m., Horacio Castellini escribió:
>    >> > Holas... Buscando no me doy idea de como programar una opción por
>    defecto para
>    >> > finalizar un programa, por ejemplo:
>    >> >
>    >> > cosa=raw_input("desea continuar [S]/N ")
>    >> >
>    >> > entonces lo que debe ocurrir es:
>    >> >
>    >> > Si se ingresa enter se supone que es "S", lo mismo que si se ingresa
>    "S", en
>    >> > caso contrario se toma como "N" de no...
>    >> >
>    >> > alguna sugerencia?
>    >> >
>

Pa' lo' pibe:

def y_or_n(msg, default=True, yes="y", no="n"):
    """
    >>> y_or_n("desea continuar [S]/N ", yes="S", no="N")
    desea continuar [S]/N S
    True
    >>> y_or_n("desea continuar [S]/N ", yes="S", no="N")
    desea continuar [S]/N N
    False
    >>> y_or_n("desea continuar [S]/N ", yes="S", no="N")
    desea continuar [S]/N q
    desea continuar [S]/N s
    desea continuar [S]/N e
    desea continuar [S]/N
    True
    >>> y_or_n("desea continuar [S]/N ", yes="S", no="N", default=False)
    desea continuar [S]/N q
    desea continuar [S]/N s
    desea continuar [S]/N
    False
    """
    opt = None
    while opt not in ["", yes, no]:
        opt = raw_input(msg)
    if not opt:
        return default
    return not opt == no


Saludos,
Fabián.


Más información sobre la lista de distribución Programacion