【问题标题】:Python 3: Lists and loopsPython 3:列表和循环
【发布时间】:2013-12-07 18:46:31
【问题描述】:

在回答以下问题时,我需要代码方面的帮助。

算术级数是一个数字序列,其中任意两个连续数字之间的距离(或差)相同。这在序列 1, 3, 5, 7, ...中,距离为 2,而在序列 6, 12, 18, 24, ...中,距离为 6。

给定正整数距离和非负整数 n,创建一个列表,该列表由(包括)1 和 n 之间的等差数列组成,距离为距离。例如,如果距离为 2 且 n 为 8,则列表将为 [1, 3, 5, 7]。

将列表与变量 arith_prog 相关联。

我更新了我的进度:

arith_prog = []
for i in range(1, n, distance):
    arith_prog.append(n)
    total = n + distance

虽然到目前为止提出的建议很有帮助,但我仍然没有找到 turingscraft codelab 正在寻找的正确解决方案。

【问题讨论】:

    标签: python list for-loop python-3.x


    【解决方案1】:

    范围函数最多需要三个参数;开始,停止和步骤。你想要的

    list(range(1, n, distance))
    

    【讨论】:

    • 不需要 list-comp list(range(1, n, distance))
    【解决方案2】:

    我将此作为家庭作业问题来回答,因为您似乎在表明它是这样的:

    首先,你永远不会初始化n。它应该是什么起始值 有吗?

    其次,这里不需要两个循环 - 你只需要一个。

    第三,你为什么将distance传递给range()?如果你通过两个 range() 的参数被视为下限和上限, 分别 - 和 distance 可能不是一个界限。

    【讨论】:

    • n 已经初始化(在线软件),不过我明白你在说什么。距离应该是范围的步长部分(开始、停止、步长)。
    • 如果您对range() 使用step 参数,则不再需要循环。
    • @Purply.Platypus 正如 Jon Clements 还指出的那样,range() 生成的生成器可以传递给 list() 以创建一个列表 - 如果您已经在使用 step 参数作为范围,它会准确生成您想要的列表,这意味着您无需进行任何修改。
    【解决方案3】:

    问题是你有arith_prog.append(n)。您需要将.append(n) 替换为.append(i),因为我们将该范围内的值添加到列表中。我刚刚在 15 分钟前完成了这项作业,这是正确的解决方案之一。我犯了和你一样的错误。

    【讨论】:

      【解决方案4】:

      做这样的事情

      arith_prog = []
      n = 5 #this is just for example, you can use anything you like or do an input
      distance = 2 #this is also for example, change it to what ever you like
      for i in range(1,n,distance):
          arith_prog.append(i)
      print(arith_prog) #for example this prints out [1,3]
      

      【讨论】:

        【解决方案5】:

        我也在 myprogramminglab 上遇到过这个练习。你非常亲近。试试这个:

        arith_prog = []
            for i in range(1, n + 1, distance):
                arith_prog.append(i)
                total = n + distance
        

        希望这会有所帮助。

        【讨论】:

          【解决方案6】:

          通过 MPL 工作并遇到这个问题,接受以下答案:

          arith_prog=[]
          
          for i in range(1,n+1,distance):
              arith_prog.append(i)
          

          【讨论】:

            猜你喜欢
            • 2019-05-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-03
            • 1970-01-01
            • 1970-01-01
            • 2016-02-25
            相关资源
            最近更新 更多