快速查询我的程序

2024-09-22 10:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在为python学习编程概念课程,这是我的一个作业。我基本上要通过加法来乘法。我已经到了一个地步,我有一切需要做的事情,但这里是额外的信贷。我已经提交了作业,但现在我来这里只是想问为什么这不起作用。你知道吗

问题是当yMult变量是一个浮点数时,它不起作用。我认为发生的事情是,我的计数器(正如老师希望我们用循环和计数器做的那样)每次都会上升1,如果我有一个浮点数作为yMult,它就不会像这样xMult上升。我该怎么做来修复这个和/或它看起来是什么样子?你知道吗

以下是我编写的代码:

def add(xAdd, yAdd):    
     return xAdd + yAdd

def subtract(xSub, ySub):    
     return xSub + (-ySub)

def multiply(xMult, yMult):    
     total = 0.0    
     counter = 0.0    
     while counter > yMult:      
         if yMult <= 0.0:
             total = add(total, -xMult)
             counter = add(counter, -1.0)
     while counter < yMult:
         if yMult >= 0.0:
             total = add(total,xMult)
             counter = add(counter, 1.0)
     return total

def main():
    print multiply (5.5,9), multiply(9,5.5), multiply(2,4), multiply(2,-4), multiply(-4,2), multiply(-4,-2), multiply(4,1), multiply(1, 4), multiply(4, 0), multiply(0, 4), multiply(4, -1)

main()

结果如下:49.5 54.0 8.0 -8.0 -8.0 8.0 4.0 4.0 0.0 0.0 -4.0

任何帮助都太棒了!你知道吗


Tags: addreturndef作业counter计数器事情multiply
1条回答
网友
1楼 · 发布于 2024-09-22 10:17:09

我不知道你能不能不用乘法来解决这个问题。
如果你想乘以0.5,那么你需要加上另一个数字的一半,这意味着乘以0.5。
但如果保证至少接收一个整数,则可以将其用作计数器:

def multiply(xMult, yMult):    
 total = 0.0    
 counter = 0.0    
 limit = yMult
 toAdd = xMult
 if isinstance(xMult,int):   
    limit = xMult 
    toAdd = yMult
 while counter <abs(limit):      
     if limit <= 0.0:
         total = add(total, -toAdd)
     else:
         total = add(total,toAdd)
     counter = add(counter, 1.0)
 return total

相关问题 更多 >