domingo, 17 de marzo de 2019

Y más sobre Python 2.7:

¡¡ OJO al comparar con booleanos !!:
  • 0 == False => True
  • 1 == True => True
Parece que hace una conversión implícita de False/True a int...
La forma segura es:
  • 0 is False => False
  • 1 is True => False
Por tanto, la conclusión tanto con booleanos como con None, es comparar siempre usando 'is' en vez de '=='.



La representación de Float es un dolor...

  • ut = 1547833469.123
  • print(ut) -> 1547833469.12
  • str(ut) -> 1547833469.12
  • repr(ut) -> 1547833469.123
  • print repr(ut) -> 1547833469.123
  • float(ut) -> 1547833469.123
  • print float(ut) -> 1547833469.12
Esto nos puede volver absolutamente locos usando print para depurar (str implícito), pero también puede dar problemas enormes componiendo instrucciones SQL.

No hay comentarios: