【问题标题】:Changed parameter in for loop but returns same numbers(Python)在 for 循环中更改参数但返回相同的数字(Python)
【发布时间】:2014-04-12 01:14:00
【问题描述】:

谁能指出这段代码中导致列表以相同元素结束的问题?

numbers = []

def add_tolist(x,y):
i = 0
for i in range(x):
    numbers.append(i)

i += y
for num in numbers:
    print num

add_tolist(10,1) 在列表中返回与 add_tolist(10,2) 相同的数字

我有一种感觉,我忽略了一些非常明显的东西。

【问题讨论】:

  • 你应该检查你的缩进。至少在你在这里 c/p 之后。

标签: python list loops for-loop append


【解决方案1】:

您不需要像在 C 中那样为 i 赋值并递增它。在 python 中,for-in 语句有点不同。您应该检查thisthis
关于范围及其步进,您应该检查this

使用所有这些,我认为这就是您想要实现的目标。

numbers = []

def add_tolist(x,y):
    for i in range(0,x,y):
        numbers.append(i)

    for num in numbers:
        print (num)

>>> add_tolist(10,2)
0 2 4 6 8

>>> add_tolist(10,1)
0 1 2 3 4 5 6 7 8 9

【讨论】:

    【解决方案2】:

    看来您原来的缩进丢失了。 如果不是:(程序甚至不应该运行,如果不是......)

    def add_tolist(x,y):
    i = 0
    for i in range(x):
        numbers.append(i)
    

    这里不使用参数y。

    i += y
    

    与 numbers = [] 处于同一缩进级别

    你期望它做什么?

    【讨论】:

      【解决方案3】:

      在创建数字列表之前,您不会对 y 做任何事情。

      【讨论】:

        猜你喜欢
        • 2012-09-27
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-03
        • 2016-10-23
        • 2014-10-03
        • 1970-01-01
        相关资源
        最近更新 更多