Python操作顺序

2024-06-28 19:10:53 发布

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

我正在学习代码,我很难理解下面的代码是如何工作的。这段代码是一个函数,它提供了一个问题的解决方案,即给定一些头和腿,你有多少头和鸡。这些评论显示了我在哪里遇到了障碍谁能帮我解释一下这些障碍?我不知道代码是怎么起作用的。非常感谢!你知道吗

def solve(numLegs, numHeads):
    for numChicks in range(0, numHeads + 1):
        numPigs = numHeads - numChicks #So this says numPigs is equal to (5,4,3,2,1,0)
        totLegs = 4*numPigs + 2*numChicks #I don't understand how the math is caluclated here.
        #I'd assume this is equal to 4*(5,4,3,2,1,0) + 2*(0,1,2,3,4,5). But how does that calculate?


        if totLegs == numLegs: #finally here, if totLegs is equal to a list, and so are numPigs, and numChicks
                                #how do you get one value for each??

            print (numPigs, numChicks)
    return (None, None)


solve(14,5)

Tags: to代码forhereisequalthishow
2条回答

So this says numPigs is equal to (5,4,3,2,1,0)

不,不是这么说的。for循环的主体执行numHeads+1次。在第一次执行时,numPigs是5。在第二次执行时,它是4,依此类推。你知道吗

if totLegs is equal to a list

不是,是个数字。你知道吗

假设你有p猪和c鸡,总共有p+c头,因为每只动物有一个头和4*p+2*c腿,因为每只猪有4条腿,每只鸡有2条腿。你知道吗

这导致了两个限制

  1. 压头=p+c
  2. 支腿=4*p+2*c

在代码中:

for numChicks in range(0, numHeads + 1):

循环查找鸡的数量(c)的可能值。所以numChicks按顺序取值1,2,3,等等。你知道吗

numPigs = numHeads - numChicks

基于第一个约束进行计算。你知道吗

totLegs = 4*numPigs + 2*numChicks

检查第二个约束是否成立

if totLegs == numLegs:

检查找到的值是否为预期值

相关问题 更多 >