No pude encontrar otra respuesta cuando quería esto, así que pensé en publicar mi propia solución para cualquier otra persona y también obtener correcciones si he hecho algo mal.¿Cómo puedo convertir una cadena en int o float con prioridad en int?
Tenía que hacer un analizador automático de archivos de configuración y preferí hacer números int si fuera posible y flotar si no. La conversión try/except habitual no funciona por sí sola ya que cualquier float solo se forzará a un int.
Para aclarar como alguien preguntó, el caso es básicamente para convertir números como la persona que escribe los datos del archivo de configuración pretendía que fueran. Entonces, cualquier cosa con decimales probablemente sea una flotación. Además, creo que la flotación puede ser peligrosa para algunos operadores (por ejemplo, ==, <,>) debido a la naturaleza de los números de punto flotante, y int se convertirá en flotación cuando sea necesario. Por lo tanto, prefiero que los números permanezcan en int cuando sea posible. No es una gran cosa, solo como una especie de convención para mí.
posible duplicado de [Python - Parse String to Float o Int] (http://stackoverflow.com/questions/379906/python-parse-string-to-float-or-int) – Johnsyweb
NO es un duplicado; esa pregunta pide algo diferente. –
Edite su pregunta para dar ejemplos que aclaren lo que quiere decir con "hacer números int si es posible". En particular, ¿quiere que "10.0000" (donde la intención del usuario es obviamente flotante) se convierta en 'int' o' float'. –