[pyar] [Programacion] Símbolo \

Facundo Batista facundobatista en gmail.com
Sab Mar 10 13:02:47 ART 2012


2012/3/10 Diva Satanica <apokalyptica79 en gmail.com>

>> print ('The monthly payment is ', monthly_payment)
>
>
> Y la salida es la siguiente:
>
>> ('The monthly payment is ', 416.6666666666667)

Me tomo el atrevimiento de extenderme un poquito más de tu pregunta
original, pero me resultó feo lo que hacía ese ejemplo.

Un tema es el de la barra invertida. Sí, se usa para que Python "no le
preste atención al fin de linea". El siguiente ejemplo es trivial...

>>> a = \
... 3
>>> a
3

...pero hay casos en que es útil ("if"s largos, como muestra otro
mail). Sin embargo, la PEP 8 indica que es preferible envolver a la
expresión en paréntesis.

Ejemplo, en lugar de:

if (nombre_largo_1 == valor1 or nombre_largo_2 == valor2) and \
              otra_cosa_que_me_hace_pasar_de_la_columna == 80:

recomienda hacer:

if ((nombre_largo_1 == valor1 or nombre_largo_2 == valor2) and
              otra_cosa_que_me_hace_pasar_de_la_columna == 80):

Lo cual funciona porque Python, al encontrar el fin de linea, se da
cuenta que todavía no cerramos todos los paréntesis (o corchetes, o
llaves) abiertos, con lo cual *obviamente* tenemos que seguir en la
linea siguiente.

Bien. Próxima cuestión. Ese print con paréntesis engaña un poco, ¿o
estarás haciendo ejercicios para Python 3 pero usando Python 2?

En Py3, print es una función, con lo cual los paréntesis son
obligatorios al llamar a la función:

(Py3)
>>> print ('The monthly payment is ', 1000)
The monthly payment is  1000

pero es raro, porque ponen dos espacios que no deberían estar: entre
el print y el "(", y luego del "is". *Parecería* que es Python 2, sólo
que por los paréntesis uno está imprimendo una tupla, lo que es
horrible.

Finalmente, la forma más piola de usar el formateo es la siguiente, no
la que muestra el ejemplo:

Py3
>>> print('The monthly payment is {:.2f}'.format(monthly_payment))
The monthly payment is 416.67

Py2
>>> print 'The monthly payment is {0:.2f}'.format(monthly_payment)
The monthly payment is 416.67

De esa manera, construís un sólo string indicando facilmente dónde
poner los valores a reemplazar, no construís cosas con espacios en el
medio. Por otro lado, quizás el ejercicio muestra una cosa y después
llegará a esto.

Slds.

--
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/



More information about the pyar mailing list