我正在爲我觀看的視頻進行數學檢查,基本上,您將Input1,Input2,Input3,Input4添加在一起。如果總和大於9,則將整數加起來並重復並重復,直至得到1-9的單個數字。然後,您輸入Input1並進行數字加法,直到您得到的單個數小於10.您對Input2,Input3和Input4重複此操作。然後你添加這四個數字,並重復這個數字的加法,直到它還有一個小於10的單個數字。檢查是否Input1,2,3,4之和剩下的單個數字應該與總和相同Input1,2,3,4的個位數。數學檢查器中的IF循環有什麼問題?
這適用於小數字,但大數字不適用。結果中我得到不同的數字和數字大於9。
我在做什麼錯?
Input1 = 16836373683333
Input2 = 2338737938763876373897
Input3 = 3387398737837893
Input4 = 48739873973334556368638637876383
Sum = Input1 + Input2 + Input3 + Input4
Sum = str(Sum)
Sum = list(Sum)
Sum = list(int(digit) for digit in Sum)
Sum = sum(Sum)
if Sum > 9:
Sum = str(Sum)
Sum = list(Sum)
Sum = list(int(digit) for digit in Sum)
Sum = sum(Sum)
Input1 = str(Input1)
Input1 = list(Input1)
Input1 = list(int(digit) for digit in Input1)
Input1 = sum(Input1)
if Input1 > 9:
Input1 = str(Input1)
Input1 = list(Input1)
Input1 = list(int(digit) for digit in Input1)
Input1 = sum(Input1)
Input2 = str(Input2)
Input2 = list(Input2)
Input2 = list(int(digit) for digit in Input2)
Input2 = sum(Input2)
if Input2 > 9:
Input2 = str(Input2)
Input2 = list(Input2)
Input2 = list(int(digit) for digit in Input2)
Input2 = sum(Input2)
Input3 = str(Input3)
Input3 = list(Input3)
Input3 = list(int(digit) for digit in Input3)
Input3 = sum(Input3)
if Input3 > 9:
Input3 = str(Input3)
Input3 = list(Input3)
Input3 = list(int(digit) for digit in Input3)
Input3 = sum(Input3)
Input4 = str(Input4)
Input4 = list(Input4)
Input4 = list(int(digit) for digit in Input4)
Input4 = sum(Input4)
if Input4 > 9:
Input4 = str(Input4)
Input4 = list(Input4)
Input4 = list(int(digit) for digit in Input4)
Input4 = sum(Input4)
NewSum = Input1 + Input2 + Input3 + Input4
if NewSum > 9:
NewSum = str(NewSum)
NewSum = list(NewSum)
NewSum = list(int(digit) for digit in NewSum)
NewSum = sum(NewSum)
print Sum
print NewSum
if Sum == NewSum:
print 'Checks out!'
else:
print 'Does not check out'
'if'不是一個循環。 – melpomene
該死的,這麼多的複製/粘貼。我可以用10行編寫你的代碼。至少它會更容易調試。 –
如果你想循環,只要每個條件成立,用'while'替換'if's。 – Blckknght