【问题标题】:PYTHON Return value on whilePython on while 返回值
【发布时间】:2020-10-16 20:57:03
【问题描述】:

嗨,我在 python 中有这段代码,我想要返回并继续打印,但它只返回一次并打印一次,这是我尝试过的

def car(distance,speed):
  while distance>0:
   distance=distance-20
   speed=speed-speed*0.05
   print('distance=',distance, 'speed is',speed)
   # Here's what i tried return but it just print one time
   return distance,speed

print(car(220,160))

【问题讨论】:

  • 因为return 只是停止你的while循环,返回值并且永远不会回到循环。也许您想将距离和速度分配给某个变量并加以利用?
  • 不返回,而是将数据点添加到列表中。在您的 while 循环完成后返回列表

标签: python loops return


【解决方案1】:

您的 return 语句缩进一级太多,因此循环在一次后终止。确保它与 while 对齐。

【讨论】:

  • 这只会返回while循环的最后一个值,而不是每个值
【解决方案2】:

Return 语句将控件移回调用函数。因此 while 被终止。您可以在 while 结束后追加结果并打印

def car(distance,speed):
  result = []
  while distance>0:
    distance=distance-20
    speed=speed-speed*0.05
    # Here's what i tried return but it just print one time
    result.append((distance,speed))

  for item in result:
      print('distance=',item[0],'speed is', item[1])

【讨论】:

    【解决方案3】:

    return 语句用于结束函数调用的执行并返回结果return 关键字后面的表达式的值 ) 给来电者。 return 语句之后的语句(在函数中)不被执行。

    所以在这种情况下,您将返回第一个值,然后您将跳出函数。

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2018-08-10
      • 2012-10-26
      • 1970-01-01
      • 2016-05-29
      • 2019-09-16
      • 2013-06-07
      • 1970-01-01
      • 2012-06-03
      相关资源
      最近更新 更多