Python 我怎样才能回到循环的开始?

Python 我怎样才能回到循环的开始?,python,while-loop,break,continue,Python,While Loop,Break,Continue,如果我的问题看起来很长,我道歉。我会尽量简明扼要 问题:编写一个程序,将以千克为单位的估算重量转换为磅。如果用户输入负值,程序应要求玩家重新输入数字 我创建了三个函数。 第一个函数-返回播放器输入 第二个功能-以磅为单位返回重量 第三个函数-如果重量为正,则返回以磅为单位的值;如果重量为负,则请求另一个输入 # function that asks for player input in kg def weight_input () : return float (inpu

如果我的问题看起来很长,我道歉。我会尽量简明扼要

问题:编写一个程序,将以千克为单位的估算重量转换为磅。如果用户输入负值,程序应要求玩家重新输入数字

我创建了三个函数。 第一个函数-返回播放器输入 第二个功能-以磅为单位返回重量 第三个函数-如果重量为正,则返回以磅为单位的值;如果重量为负,则请求另一个输入

 # function that asks for player input in kg
    def weight_input () :
      return float (input ("Enter valid weight: "))

    weight_kg = weight_input()

    # formula to convert kg into pounds
    def weight_conversion():
      return 2.2 * weight_kg

    weight_pds = weight_conversion ()

    def weight_info () :
      while True :
        weight_kg
        if weight_kg > 0 : # if weight > 0 we return the weight in pds
          return weight_pds
        else :
          print("Invalid weight.")
          continue  # go back to the start of the loop and ask for input
      return weight_pds

    print (weight_info () )
如果相同的值为正数,我的程序将返回正确的值。然而,当我输入一个负浮点数时,我的程序将永远打印“无效权重”。有人告诉我,每当我在循环中写入continue时,我都会返回到同一循环的开头,但是我无法停止我的程序。

它打印“无效重量”的原因是永远的,因为你只接受一次输入,每次都使用它,即每次输入时,重量永远不会更新

试码

# function that asks for player input in kg
def weight_input () :
  return float (input ("Enter valid weight: "))


# formula to convert kg into pounds
def weight_conversion(weight_kg):
  return 2.2 * weight_kg

def weight_info () :
  while True :
    weight_kg = weight_input()
    if weight_kg > 0 : # if weight > 0 we return the weight in pds
      return weight_conversion (weight_kg)
    else :
      print("Invalid weight.")
      continue  # go back to the start of the loop and ask for input
  return weight_pds

print (weight_info () )

提示:如果使用函数,不要使用全局变量。它们将保留最后的值,如果您的代码需要在每次调用中更改/重置它们,则更喜欢使用函数参数使用
continue
语句仅跳过当前迭代循环中的其余代码。循环不会终止,但会继续进行下一次迭代

break
语句终止包含它的循环。程序的控制在循环体之后立即流向语句。 如果break语句位于嵌套循环内(另一个循环内的循环),break将终止最内层的循环

因此,在您使用
continue
的情况下,您只需返回
,而
仍有错误的输入


您请求输入一次,当输入错误时需要再次请求。

它确实返回到循环的开始。但是在循环中不调用input。但是weight_kg是一个变量,它返回第一个函数返回的内容,第一个函数返回一个inputNo。Weight_kg是一个全局变量,您可以在循环之前设置它,然后再不进行修改。