Python TypeError: tipos de operandos no admitidos para +: 'NoneType' e 'Int'
-
el
TypeError: tipo(s) de operando no admitidos para +: 'NoneType' e 'int'
en Python -
Solucione el
TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
en Python -
Solucione el
TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
dentro de una función
En Python, el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
ocurre cuando agrega un valor entero con un valor nulo
. Discutiremos en este artículo el error de Python y cómo resolverlo.
el TypeError: tipo(s) de operando no admitidos para +: 'NoneType' e 'int'
en Python
El compilador de Python lanza el TypeError: tipo(s) de operando no admitidos para +: 'NoneType' e 'int'
porque estamos manipulando dos valores con diferentes tipos de datos. En este caso, los tipos de datos de estos valores son int
y null
, y el error le informa que la operación no es compatible porque el operando int
y null
para el operador +
no son válidos.
Ejemplo de código:
a = None
b = 32
print("The data type of a is ", type(a))
print("The data type of b is ", type(b))
# TypeError --> unsupported operand type(s) for +: 'NoneType' and 'int'
result = a + b
Producción :
The data type of a is <class 'NoneType'>
The data type of b is <class 'int'>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Como vemos en la salida del programa anterior, el tipo de datos de a
es NoneType
, mientras que el tipo de datos de b
es int
. Cuando intentamos agregar las variables a
y b
, encontramos el TypeError: tipo(s) de operando no admitido(s) para +: 'NoneType' e 'int'
.
Aquí hay algunos casos similares que también causan TypeError porque sus tipos de datos difieren.
# Adding a string and an integer
a = "string"
b = 32
a + b # --> Error
# Adding a Null value and a string
a = None
b = "string"
a + b # --> Error
# Adding char value and a float
a = "D"
b = 1.1
a + b # --> Error
Solucione el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
en Python
No puede usar null
para realizar operaciones aritméticas en él, y el programa anterior ha demostrado que arroja un error. Además, si tiene un caso similar, encasille los valores antes de realizar cualquier operación aritmética u otras tareas deseadas.
Para corregir este error, puede usar tipos de datos válidos para realizar cualquier operación aritmética en él, encasillar los valores, o si su función devuelve valores nulos
, puede usar bloques try-catch
para evitar que su programa se bloquee.
Ejemplo de código:
a = "Delf"
b = "Stack"
print("The data type of a is ", type(a))
print("The data type of b is ", type(b))
result = a + b
print(result)
Producción :
The data type of a is <class 'str'>
The data type of b is <class 'str'>
DelfStack
Como puedes ver, tenemos tipos de datos similares para a
y b
, que están perfectamente concatenados sin arrojar ningún error porque la naturaleza de ambas variables es la misma.
Solucione el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
dentro de una función
Ejemplo de código:
def sum_ab(a, b=None):
# TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
return a + b
sum_ab(3)
Producción :
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
En el código anterior, la función sum_ab()
tiene dos argumentos, a
y b
, mientras que b
se asigna a un valor null
, es el argumento predeterminado, y la función devuelve la suma de a
y B
.
Digamos que ha proporcionado sólo un parámetro, sum_ab(3)
. La función activará automáticamente el parámetro predeterminado a Ninguno
, que no se puede agregar, como se ve en los ejemplos anteriores.
En este caso, si no está seguro de qué función generó el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int'
, puede utilizar el mecanismo try-catch
para superar tales errores.
Ejemplo de código:
try:
def sum_ab(a, b=None):
return a + b
sum_ab(3)
except TypeError:
print(
" unsupported operand type(s) for +: 'int' and 'NoneType' \n The data types are a and b are invalid"
)
Producción :
unsupported operand type(s) for +: 'int' and 'NoneType'
The data types are a and b are invalid
El bloque try-catch
lo ayuda a interpretar los errores y proteger su programa de fallas.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python