Una forma común "Pythonic" para manejar este tipo de situación que se conoce como EAFP para "Es más fácil pedir perdón que permiso". Lo que generalmente significa escribir código que asume que todo está bien, pero luego envolverlo con un bloque try..except
por si acaso para manejar las cosas cuando no lo está.
Así es que el estilo de codificación aplicado a su problema:
try:
my_value = int(my_value)
except TypeError:
my_value = 0 # or whatever you want to do
answer = my_value/divisor
O tal vez el aún más simple y ligeramente más rápido:
try:
answer = my_value/divisor
except TypeError:
answer = 0
El enfoque inversa y más tradicional es conocida como LBYL que destaca para "Mire antes de saltar" es lo que @Soviut y algunos de los otros han sugerido. Para obtener una cobertura adicional de este tema, consulte mi answer y los comentarios asociados a la pregunta Determine whether a key is present in a dictionary en otro lugar de este sitio.
Un problema potencial con EAFP es que puede ocultar el hecho de que algo está mal en alguna otra parte de su código o módulo de terceros que esté utilizando, especialmente cuando se producen con frecuencia las excepciones (y por lo tanto aren' t casos realmente "excepcionales" en absoluto).
Suponga que None es equivalente a 2771. Pero quizás eso no es lo que quiere. Por favor da más información. – JoshD
De alguna manera obtuve un valor Nonetype, se supone que es un int, pero ahora es un objeto Nonetype, y necesito dividir otro número, luego apareció el error. – user469652
'int (None)' arroja una excepción porque None no se puede convertir a un int. La respuesta a su pregunta es que no se puede hacer. Puede sustituir algo como 0 o 2771, o un elefante rosa, pero sea lo que sea lo que sustituya, no podrá convertir None en un int. – snapshoe