Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的For循环行为_Python_Python 2.7 - Fatal编程技术网

python中的For循环行为

python中的For循环行为,python,python-2.7,Python,Python 2.7,我有两个函数,根据另一个函数中的输入计算动物的数量。我想知道这个函数的行为。如果我输入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 +

我有两个函数,根据另一个函数中的输入计算动物的数量。我想知道这个函数的行为。如果我输入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
对于范围(0,numHeads+1)内的numChick,我被困在这里
。如果我们得到for循环线路中的鸡的数量,那么我们可以继续计算猪的数量,对吗?但是我们怎么才能得到12只鸡呢?请考虑Python手册中关于我的输入的数量

< P>:

这是一个多功能函数,用于创建包含算术级数的列表。它最常用于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)
[]
只是一个for循环,它将从
0
循环到
numHeads+1
。如果
numHeads
为10,它将从0循环到10,如果
numHeads
为100,它将从0循环到100

请参见python for循环函数:

对于范围功能:

e、 g

每次循环时,
numchick
取相应的值,即
numchick
将取从0:0、1、2、,范围(y,z)中x的numHeads将创建一个循环,该循环迭代(最多)y-z次,并将range()生成的值分配给x。乙二醇

for x in range( 0, 10 )
在第一次、第二次、第三次等迭代中,x将是0、1、2等

范围(开始,停止[,步骤])以步骤为增量从开始到停止(包括)生成编号列表。(可以省略开始和步骤,默认分别为0和1。)

将返回范围[0,numHeads+1] 如果numHeads为5,则为ex

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

生成。

例如,假设numHeads=10,那么我们得到的范围是0到9。那么这是用0到9之间的每一个数字加1吗?比如0+1,1+1等等,像这样的?或者我错了?numHeads=10,在代码中不会改变。所以它将上升到10。它不会向numHeads添加任何数字,因为它不会改变,它是for循环的上限。唯一改变i numChick的数字,从0开始,然后变成1,然后变成2,然后变成3,然后变成4,最后变成10。希望有帮助。请接受我在这里描述的答案是的,我会接受。请让我知道numChick 10岁后我们会到达哪里。那么最终numChick变成了10,加上1?那么10+1=11?这是我们最后得到的结果吗?正如您从我提供的示例中所看到的>>>范围(1,11)[1,2,3,4,5,6,7,8,9,10]一直上升到10。所以在你的例子中,如果numChick是10,它会一直上升到10。这样想:如果范围(最小值,最大值)上升到最大值1。请接受我的回答。为了理解,我分享了完整的代码(再次检查问题)。请你澄清我提到的几点好吗?谢谢
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for x in range( 0, 10 )
range( 0, numHeads+1 )
{0,1,2,3,4,5,6}