我正在爲類進行的任務是要求我們製作一個程序,通過重複減法計算整數除法(就像乘法等於重複加法一樣)。到目前爲止,除了用戶想要計算商的次數以外,所有的工作都很好。函數中迭代的問題
由於某些原因,程序總是運行一次,而不是我提示程序在for循環中執行的迭代次數/輸入次數。
我可以得到一些幫助嗎?我是新的函數,所以我確定該程序的可讀性不如它,但我需要確定的是我的get_num_of_inputs()函數和/或num_of_inputs變量有什麼問題。
謝謝! :)
def main():
num_of_inputs = get_num_of_inputs()
numerator, denominator = get_input()
quotient = calc_quotient(num_of_inputs, numerator, denominator)
display_output(numerator, denominator, quotient)
def get_num_of_inputs():
return int(input("What is the number of inputs?: "))
def get_input():
numerator = int(input("\nEnter the numerator: "))
denominator = int(input("Enter the denominator (must not be zero): "))
return numerator, denominator
def calc_quotient(num_of_inputs, numerator, denominator):
if denominator == 0:
return print("Error: invalid input")
if numerator == 0:
return 0
if denominator == 1:
return numerator
if denominator == -1:
return -numerator
numerator_abs = abs(numerator)
denominator_abs = abs(denominator)
for iterations in range(num_of_inputs):
#case 1
if numerator_abs > denominator_abs:
result = 5
acc = numerator_abs
quotient = 0
while result > 0:
acc = acc - denominator_abs
result = acc
quotient += 1
if result < 0:
return quotient - 1
if (numerator > 0 and denominator > 0) or (numerator < 0 and denominator < 0):
return quotient
if numerator_abs % denominator_abs == 0 and ((numerator > 0 and denominator < 0) \
or (numerator < 0 and denominator > 0)):
return -quotient
if numerator_abs % denominator_abs > 0 and ((numerator > 0 and denominator < 0) \
or (numerator < 0 and denominator > 0)):
return -quotient - 1
#case 2
if denominator_abs > numerator_abs:
if (numerator > 0 and denominator > 0) or (numerator < 0 and denominator < 0):
return 0
if (numerator > 0 and denominator < 0) or (numerator < 0 and denominator > 0):
return -1
#case 3
if numerator_abs == denominator_abs:
if (numerator > 0 and denominator > 0) or (numerator < 0 and denominator < 0):
return 1
if (numerator > 0 and denominator < 0) or (numerator < 0 and denominator > 0):
return -1
def display_output(numerator, denominator, quotient):
print("\nThe quotient of", numerator, "and", denominator, "is:", quotient)
main()
函數只能返回一次,這將結束循環。 – jonrsharpe
我認爲它應該是'範圍(0,num_of_inputs)',我想你可能想保持胡椒括號,如果條件爲 – dvenkatsagar
嗯..這似乎並不奏效。 –