Ich verstehe leider nicht wieso. Wenn ich die Funktion so aufrufe aichHashTable(52) erwarte ich für max(hashTable[-1]) eine 52, das stimmt so auch wenn ich mir dass per print() ausgeben lasse. Warum also ist while max(hashTable[-1]) > 1 dann nicht wahr, bzw. warum kommt der genannte Fehler?
Code: Alles auswählen
def aichHashTable(self, numberOfBlockhashs):
hashTable = []
hashTable.append([])
hashTable[-1].append(numberOfBlockhashs)
while max(hashTable[-1]) > 1:
hashTable.append([])
leftRight = "left"
for item in hashTable[-2]:
if item > 1:
number = item / 2
if leftRight == "left":
hashTable.append(number + (item % 2))
hashTable.append(number)
else:
hashTable.append(number)
hashTable.append(number + (item % 2))
else:
hashTable.append(0)
leftRight = leftRight == "left" if "right" else "left"
print(hashTable)