2012-09-03 37 views
11

En c puedo hacer algo como:instrucción Return utilizando operador ternario

int minn(int n, int m){ 
return (n<m)? n:m 
} 

Pero en Python no soy capaz de lograr el mismo:

def minn(n,m): 
    return n if n<m else return m 

esto da Syntax Error

I sé que puedo hacer algo como:

def minn(n,m): 
    return min(n,m) 

Mi pregunta es, ¿no puedo usar el operador ternario en python.

+0

¡no hay nada llamado dos declaraciones de devolución! 'return (n Curious

+0

@Curious Tuve una extraña confusión, ahora está claro. –

+0

en python podría escribir lo mismo que 'return n if n Curious

Respuesta

33

Su código C no contiene dos declaraciones return. Tampoco debe su código Python ... La traducción de su expresión ternaria es n if n<m else m, por lo que sólo tiene que utilizar esa expresión cuando se devuelva el valor:

def minn(n,m): 
    return n if n<m else m 
9
def minn(n,m): 
    return n if n<m else m 

La expresión expr1 if expr2 else expr3 es una expresión, no una afirmación. return es una afirmación (Consulte this pregunta)

Dado que las expresiones no pueden contener sentencias, el código falla.

Cuestiones relacionadas