2016-07-27 76 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 

通过重复减法(重复减法除法)获得的最小正数是两个数的模数。要找到下一个数字,只需再减一次。

除非你使用循环,但这似乎是一个家庭作业的问题,我不确定是否只是给出答案是学习的方式。