Python TypeError: tipos de operandos no admitidos para +: 'NoneType' e 'Int'

Zeeshan Afridi 8 octubre 2023
  1. el TypeError: tipo(s) de operando no admitidos para +: 'NoneType' e 'int' en Python
  2. Solucione el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int' en Python
  3. Solucione el TypeError: tipo(s) de operando no admitido para +: 'NoneType' e 'int' dentro de una función
Python TypeError: tipos de operandos no admitidos para +: 'NoneType' e 'Int'

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 Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python Error