Python:乘以“范围内的i(..)迭代”

Python:乘以“范围内的i(..)迭代”,python,python-3.x,Python,Python 3.x,所以我有一个赋值,我需要返回inf,用x乘以10,使用: for i in range(...) 因此,我的代码的主要部分是: def g(x): x = 10.*x for i in range(308): return x 如果我进去 >>> g(3.) >>> 30.0 我希望它迭代308次,直到我得到inf。是否有一行我可以使用for I in范围内的数字。。要迭代方程那么多次?例

所以我有一个赋值,我需要返回inf,用x乘以10,使用:

for i in range(...)
因此,我的代码的主要部分是:

   def g(x):
      x = 10.*x
      for i in range(308):
          return x
如果我进去

    >>> g(3.)
    >>> 30.0
我希望它迭代308次,直到我得到inf。是否有一行我可以使用for I in范围内的数字。。要迭代方程那么多次?例如:

   def g(x):
       x = 2.*x
       for i in range(3):
       # the mystery line I need for it to work
           return x
   >>> g(4.)
   >>> 16.0
但它没有给我这个。相反,它返回8.0


我的另一种方法是使用打印。但是我认为在要求返回inf的赋值中使用print语句是无效的。

它不像您期望的那样迭代的原因是因为return语句。return立即从正在运行的任何过程/函数中退出,并返回给定给它的值。这里是第一个函数的演练,假设它是用g4中的值4调用的

你想要的不是这个,而是将重复乘法的值累加起来的东西。假设您希望每个迭代都运行,那么您根本不希望在循环中返回任何内容。我不会给你确切的答案,因为这是家庭作业,但我会给你一个提示。您可能不希望return缩进,因为它位于您提供的第二位代码中。你可能想要更像这样的东西:

def g(x):
    x = 2 * x
    for i in range(3):
        # { your code here }
        # You want to accumulate the value!
    return x
def g(x):
      for i in range(308):
          x = 10.*x     # because we've moved this line into the loop, it gets run 308 times
      return x    # since we've unindented this line, it runs only once (after the loop ends)

我认为你的部分是对的,只是没有安排正确。试着这样做:

def g(x):
    x = 2 * x
    for i in range(3):
        # { your code here }
        # You want to accumulate the value!
    return x
def g(x):
      for i in range(308):
          x = 10.*x     # because we've moved this line into the loop, it gets run 308 times
      return x    # since we've unindented this line, it runs only once (after the loop ends)

要重复的部分需要在for语句的行后缩进。你不想重复的东西,比如返回,只能发生一次,不应该在循环中。

你在第一次迭代时返回吗?你想做什么?你希望for循环只返回一个任务吗?我想做的是在第二段代码中。我知道我在for循环和return之间遗漏了一些东西。这就是我有点迷路的原因。看看你的循环。它所做的只是返回,返回停止当前函数的执行,并将值返回给被调用方……我猜您需要这样做:循环“for I in range3:”下面的缩进行针对I的每个值执行,但您在那里有“return”,它终止了循环。神秘线是应该重新绘制的线。。。返回应该在循环之后完成,所以将其放在一个未缩进的行上