python中的For循环行为

2024-06-28 18:58:26 发布

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

我有两个函数,根据另一个函数的输入来计算动物的数量。我想知道这个函数的行为。如果我输入20个头和56条腿,我最终得到8头猪和12只鸡。但也有疑问。你知道吗

 def solve(numLegs, numHeads):
    for numChick in range(0, numHeads + 1): #we have got 12 chickens here?
        numPigs = numHeads - numChicks
        totLegs = 4 * numPigs + 2* numChicks
        if totLegs == numLegs:
           return [numPigs, numChicks]
    return[None, None]

def barnYard():
    heads = int(raw_input('Enter number of heads:'))
    legs = int(raw_input('Enter number of legs:'))
    pigs, chickens = solve(legs, heads)
    if pigs = None:
       print 'there is no solution'
    else:
        print 'number of pigs:' , pigs
        pirnt 'number of chickes:', chickens

我被困在这里了。如果我们得到for循环行中的鸡的数量,那么我们可以继续计算猪的数量,对吗?但是我们怎么才能得到12只鸡呢?请考虑我的输入数量


Tags: of函数nonenumber数量defheadssolve
3条回答
for numChick in range(0, numHeads + 1)://what is this doing?

只是一个for循环,它将从0循环到numHeads + 1。如果numHeads是10,它将从0循环到10,如果numHeads是100,它将从0循环到100

请参阅python for循环函数:https://wiki.python.org/moin/ForLoop

对于range函数:https://docs.python.org/2/library/functions.html#range

例如

>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

每次循环时,numchick取相应的值,即numchick将取从0开始的所有值:0、1、2。。。,人头

对于range(y,z)中的x,将创建一个循环,该循环迭代(最多)y-z次,并将range()生成的值赋给x

for x in range( 0, 10 )

在第一次、第二次、第三次等迭代中,x将是0、1、2等

https://docs.python.org/2/library/functions.html#range range(start,stop[,step])以步长为增量生成从开始到停止(包括在内)的编号列表。(可以省略Start和step,默认分别为0和1。)

range( 0, numHeads+1 )

将返回范围[0,numHeads+1] 如果numHeads是5那么

{0,1,2,3,4,5,6}

是生产出来的。你知道吗

来自python手册关于range

range(stop)
range(start, stop[, step])

这是一个多功能函数,用于创建包含算术级数的列表。它最常用于for循环。参数必须是纯整数。示例:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]

相关问题 更多 >