Die folgende [unvollständig] Code ausgelegt ist, in ein n-x Anzahl, der Länge x-n und geben den Wert der nächsten Pandigitale Zahl zu nehmen. Der Code gibt an, welche Zahl zwischen und x von der als Argument für die Funktion übergebenen Zahl fehlt und gibt (vorerst bis zur Funktionsentwicklung) zwei Listen zurück, die ursprüngliche Zahl selbst mit seinen einzelnen Ziffern als Mitglieder einer Liste und einer Liste mit den Nummern n zu x als Mitglieder mit den Zahlen, die in der ursprünglichen Anzahl der Länge vorhanden sind xndurch den booleschen Wert ersetzt wird Wahr.Python Listen anhängen Wahr Boolean
def nextPandigital(n,lower,upper):
digits = []
requiredDigits = []
#Completed loop
for digit in str(n):
digits.append(int(digit))
#Completed loop
for num in range(lower,upper+1):
requiredDigits.append(num)
for number in requiredDigits:
if str(number) in str(digits):
x = requiredDigits.index(number)
#requiredDigits[x] = 'True'
requiredDigits[x] = True
return digits, requiredDigits
Obwohl für die Eingangsparameter des nextPandigital(1023456789,0,9)
in Enthought Canopy, die zweite Liste sollte [True,True,True,True,True,True,True,True,True,True]
gelesen zurückgegeben, kehrte der Wert der zweiten Liste enthalten ist, in der Tat [True,1,True,True,True,True,True,True,True,True]
, mit der 1 aus das Original requiredDigits
Liste wird nicht ersetzt durch True
.
Ich weiß, dass es kein Problem mit der Schleife oder der allgemeine Ablauf des Codes, denn wenn die requiredDigits[x] = True
Codezeile kommentiert wird, und der aktuell kommentierte Code ist unkommentiert, der Code funktioniert, wie es sollte, zu, wobei alle Ziffern in requiredDigits
durch den String-Wert ersetzt ‚True.
‘
ich habe dieses Problem zu lösen versucht. Ich bin jedoch nicht in der Lage, die Quelle zu bestimmen. Ich habe in Betracht gezogen, dass True == 1
True zurückgibt. Wenn der Wert True jedoch durch False ersetzt wird, funktioniert der Code in der Zeile requiredDigits[x] = True
weiterhin wie vorgesehen.
Jede Antwort/Hilfe/Vorschlag/Beratung zu diesem Thema würde sehr geschätzt werden. Vielen Dank im Voraus.
Ich sollte wahrscheinlich klarstellen: An * n * bis * x * Nummer bedeutet, dass die Zahl Frage enthält alle Ziffern von der angegebenen Nummer * n * zu der angegebenen Anzahl * x *. –