CULTURA Y TECNOLOGíA

Manual de prácticas para Python desde cero [PDF|900 KiB]

#11 Indentar es bueno, ayuda a la legibilidad del código. Y si el editor indenta automáticamente, ¿cual es el problema?
#16: ¿Cómo indentas automáticamente eso?

if edad > 9 or altura > 1.0:
print('pasa')
else:
print('no pasa')
print('texto A')
print('texto B')

¿Cómo sabes ahí si "texto A" va en el else o no? Sin indentación es ambiguo y los ficheros PDF a menudo se la cargan.
En JavaScript la indentación también la pierdes, salvo por un detalle: tienes las llaves y con ellas el código siempre es funcional, y el indentado automático también va a funcionar.

if (edad > 9 or altura > 1.0){
print('pasa');
}else{
print('no pasa');
print('texto A');
}
print('texto B');

No será muy legible, pero es funcional, pero no pasa nada, muchos editores lo pueden hacer legible.


if (edad > 9 or altura > 1.0){
_ print('pasa');
}else{
_ print('no pasa');
_ print('texto A');
}
print('texto B');


Es muy legible, pero no es funcional porque he tenido que añadir guiones bajos y necesitaría eliminarlos.

Este es el problema que ha introducido Python y que no existía antes, al menos desde que apareció C en los años 1970.
#23 Casi cualquier IDE te va a marcar como indentar eso. A mi personalmente me parece una maravilla la indentación. Es lo que le da la gran "readability" a Python, y esa es una de las mejores cosas que tiene Python, ves un código y lo lees como si fuera un texto casi. Tambien si quieres puedes hacerte el chulo y hacer todo en una linea:
print('pasa') if edad > 9 or altura > 1.0 else print('no pasa')
Pero hacer eso asi precisamente choca con el dogma de python.
#34 #23 Otra opción aún más simplificada:
print("pasa" if edad > 9 or altura > 1.0 else "no pasa")
#43 Esa es buena, nunca lo he usado asi y llevo mas de 3 años trabajando con Python profesionalmente. Para que luego digan que no es flexible!
#45: En JS y en C creo que también se puede hacer eso, pero va de otra forma.

printf("%s", ( edad > 9 || altura > 1.0) ? "pasa" : "no pasa");
#43 El operador ternario de Python es otra cosa que es mala en el lenguaje.

En cualquier otro lenguaje es (variando sintaxis):
<condicion>?<resultado if>:<resultado else>

En Python:
<resultado if> if <condicion> else <resultado else>

Que para cualquier programador resulta confuso, ya que no sigue lo que viene a ser un 'standard'
#73 Conozco la sintaxis de C con respecto al operador ternario, pero la de python no la conocía hasta hace poco.
#34: ¿Cómo sabría el editor si "texto A" va dentro del else o no?

El problema de Python es que un código copiado y pegado desde un PDF es ambiguo, con las llaves de C no ocurre eso.

Entonces, que me vendan ese lenguaje como mejor... pues no.
#46 No creo que nadie este diciendo que el lenguaje es peor o mejor, se usa para distintas cosas. No creo que vayas a ponerte a crear una pagina web usando C no? Por lo mismo que normalmente no vas a hacer un SO o un videojuego con Python, que puedes, ojo, pero no es su principal fuerte.
En cuanto a cual debe ir dentro y cual no, pues tambien habra que dejar que quien esta aprendiendo piense un poco no? Saber donde poner y como un codigo es el 10% del trabajo de un programador, el resto es copiar y pegar de stackoverflow.
#34 Por lo que más quieras: legibilidad.

menéame