2016-07-27 73 views
0

目的:。
「寫一個Python函數,採用3號作爲參數你 功能應該反覆從第一 參數減去第二個參數,直到該值小於零,你的功能然後 打印出這個(負)值。「Python的功能設計,算術運算

我建議的解決方案(我有什麼至今):

def subtraction(a, b, c): 
    firstnum = a 
    if firstnum > 0: 
     firstnum = (a-b) 
    if firstnum < 0: 
     return firstnum 

問題:
當我嘗試它,其結果是在結束返回時,它出現空白。對於我所缺少的任何建議?

+1

嗨,歡迎來到[so]。堆棧溢出是一個問題和答案網站。這不是一個論壇或一般幫助網站。用戶(如您自己)提出問題,其他用戶嘗試回答。您的文章缺少堆棧溢出文章的基本元素:問題!你有特定的問題要問嗎? –

+2

你缺少的是一個循環。 – SAMO

+2

這是爲什麼這會得到downvoted?這正是應該問的作業問題。 –

回答

2

你忘了循環!因此,您不會從a減去b,直到a小於零。我建議使用這樣的while循環,

def subtraction(a, b, c): 
    firstnum = a 
    while firstnum >= 0: 
     firstnum -= b 
    return firstnum 

讓我來解釋一下之前的錯誤。沒有循環,你的函數只會從a減去b一次。然後它會檢查firstnum是否大於零。如果AND僅當firstnum小於零纔會被返回。我的猜測是firstnum不會被返回,因爲在減去b後,它不會小於零。在這個循環中,將會保證firstnum將作爲負值被返回,因爲循環將繼續從firstnum減去b,直到firstnum小於零。

3
def subtraction(a,b,c): 
    # why does c exist? 
    return a % b - b 

通過重複減法(重複減法除法)獲得的最小正數是兩個數的模數。要找到下一個數字,只需再減一次。

除非你使用循環,但這似乎是一個家庭作業的問題,我不確定是否只是給出答案是學習的方式。