Python TypeError: Nicht unterstützte Operandentypen für +: 'NoneType' und 'Int'

Zeeshan Afridi 21 Juni 2023
  1. der TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' in Python
  2. Korrigieren Sie den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' in Python
  3. Korrigieren Sie den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' innerhalb einer Funktion
Python TypeError: Nicht unterstützte Operandentypen für +: 'NoneType' und 'Int'

In Python tritt der TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' auf, wenn Sie einen ganzzahligen Wert mit einem null-Wert hinzufügen. Wir werden in diesem Artikel den Python-Fehler besprechen und wie man ihn behebt.

der TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' in Python

Der Python-Compiler wirft den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int', weil wir zwei Werte mit unterschiedlichen Datentypen manipulieren. In diesem Fall sind die Datentypen dieser Werte int und null, und der Fehler weist Sie darauf hin, dass die Operation nicht unterstützt wird, da die Operanden int und null für den Operator + ungültig sind.

Codebeispiel:

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

Ausgang:

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'

Wie wir in der Ausgabe des obigen Programms sehen, ist der Datentyp von a NoneType, während der Datentyp von b int ist. Wenn wir versuchen, die Variablen a und b hinzuzufügen, stoßen wir auf den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'.

Hier sind einige ähnliche Fälle, die ebenfalls TypeError verursachen, da sich ihre Datentypen unterscheiden.

# 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

Korrigieren Sie den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' in Python

Sie können null nicht verwenden, um arithmetische Operationen darauf auszuführen, und das obige Programm hat gezeigt, dass es einen Fehler auslöst. Wenn Sie einen ähnlichen Fall haben, typisieren Sie die Werte außerdem, bevor Sie arithmetische Operationen oder andere gewünschte Aufgaben ausführen.

Um diesen Fehler zu beheben, können Sie gültige Datentypen verwenden, um arithmetische Operationen darauf auszuführen, die Werte typisieren oder, wenn Ihre Funktion null-Werte zurückgibt, try-catch-Blöcke verwenden, um Ihr Programm vor dem Absturz zu bewahren.

Codebeispiel:

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)

Ausgang:

The data type of a is  <class 'str'>
The data type of b is  <class 'str'>
DelfStack

Wie Sie sehen können, haben wir ähnliche Datentypen für a und b, die perfekt verkettet sind, ohne einen Fehler auszulösen, da die Natur beider Variablen gleich ist.

Korrigieren Sie den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' innerhalb einer Funktion

Codebeispiel:

def sum_ab(a, b=None):
    # TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
    return a + b


sum_ab(3)

Ausgang:

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

Im obigen Code hat die Funktion sum_ab() zwei Argumente, a und b, wobei b einem null-Wert zugewiesen wird, der das Standardargument ist, und die Funktion die Summe von a zurückgibt " und B".

Angenommen, Sie haben nur einen Parameter angegeben, sum_ab(3). Die Funktion löst automatisch den Standardparameter None aus, der nicht hinzugefügt werden kann, wie in den obigen Beispielen zu sehen ist.

Wenn Sie sich in diesem Fall nicht sicher sind, welche Funktion den TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' ausgelöst hat, können Sie den try-catch-Mechanismus verwenden, um solche Fehler zu umgehen.

Codebeispiel:

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"
    )

Ausgang:

 unsupported operand type(s) for +: 'int' and 'NoneType'
 The data types are a and b are invalid

Der try-catch-Block hilft Ihnen, die Fehler zu interpretieren und Ihr Programm vor Abstürzen zu schützen.

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

Verwandter Artikel - Python Error