Momentan arbeite ich an einem Dezimal-zu-Oktal-Zahlen-Konverter. Allerdings bekomme ich manchmal diese Zeile verursachten Fehler 28:TypeError: Nicht unterstützte Operandentyp (en) für%: 'NoneType' und 'int' | Python 3
TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'
Es scheint zufällig zu passieren, manchmal ist es tut es mit einer Zahl, die in einem nächsten Durchlauf des Codes nur umgewandelt werden.
Der Code wird im Folgenden aufgeführt:
decimaal = 0
# Laat de gebruiker een waarde in typen
def user_input():
getal = int(input('Geef het getal: '))
if getal < 10000:
return getal
else:
print('Het getal moet kleiner zijn dan 10.000!')
user_input()
# functie om getal in het decimaal- naar octaal-stelsel om te zetten
def decimaal_octaal_converter(decimaal):
resultaat = []
quotient = decimaal
rest = 0
# Maakt een lijst met het octale resultaat
while quotient != 0:
"""
Soms geeft lijn 28 de volgende error:
TypeError: unsupported operand type(s) for %: 'NoneType' and 'int'
Maar waarom?
"""
rest = quotient % 8
quotient //= 8
resultaat.append(rest)
# Lijst moet omgedraaid worden
resultaat.reverse()
octaal = ''
# De lijst naar een string omzetten zodat de gebruiker het kan lezen
for i in range(len(resultaat)):
octaal += str(resultaat[i])
return print('Het getal %s in octaal is %s' % (decimaal, octaal))
# De hoofd functie voor het omzetten van decimaal naar octaal
def converter():
decimaal_octaal_converter(user_input())
converter()
Dieses für ein Projekt ist, damit der < 10.000 Teil und dutch Kommentars des
Dieses Problem tritt auf, wenn ich zum ersten Mal versuchen, ‚10000‘ zu konvertieren und dann ' 9999 '
Es ist Ihre 'user_input()' Funktion. Sie geben keinen Wert zurück, wenn der erste Aufruf ungültig ist. Verwenden Sie hier keine Rekursion, sondern fügen Sie 'input()' in eine Schleife ein. – cdarke