Python 为什么我的代码总是返回错误?

Python 为什么我的代码总是返回错误?,python,Python,当我不断遇到问题时,我正在为我的班级编写代码。我的代码是: def MeterToFoot(): meter = float(input("Enter your distance in meters: ")) print(meter*3.279) def FootToMeter(): feet = float(input("Enter distance in feet: ")) print(feet*0.305) FootToMeter() a

当我不断遇到问题时,我正在为我的班级编写代码。我的代码是:

def MeterToFoot():
  meter = float(input("Enter your distance in meters: "))
print(meter*3.279)
def FootToMeter():
  feet = float(input("Enter distance in feet: "))
  print(feet*0.305)
FootToMeter()
answer = input("Enter yes or no if you would like to calculate meters to feet: ")
if answer == "yes":
  def MeterToFoot():
    if answer == "no":
      def FootToMeter():
我想知道为什么我总是出错,有人能告诉我为什么吗? 另外,我知道我的代码非常混乱,但我只是python的初学者,所以请在这里耐心听我说

在if条件下移除
def
,并保留至少4个空格缩进

  • 只能使用
    def
    定义函数;要调用它们,只需使用带有括号的function名称。也没有冒号
  • 您的行
    print(meter*3.279)
    没有缩进,因此它被认为超出了
    metertofot
    的范围,这意味着
    meter
    将不会在该点上定义,从而导致错误
  • 最后的
    if
    语句需要固定缩进,第二个语句替换为
    elif
  • 因此,使用这些修复程序,您的代码将如下所示:

    def MeterToFoot():
      meter = float(input("Enter your distance in meters: "))
      print(meter*3.279)
    
    def FootToMeter():
      feet = float(input("Enter distance in feet: "))
      print(feet*0.305)
    
    FootToMeter()
    answer = input("Enter yes or no if you would like to calculate meters to feet: ")
    if answer == "yes":
      MeterToFoot()
    elif answer == "no":
      FootToMeter()
    

    您得到的错误是什么?您似乎不理解定义函数和调用函数之间的区别。没有理由多次使用def METERTOOFT。你的缩进也没有意义。最后——如果需要缩进第二行,为什么不使用
    else
    而不是第二行
    。它不在函数中,因此未定义
    meter
    def MeterToFoot():
      meter = float(input("Enter your distance in meters: "))
      print(meter*3.279)
    
    def FootToMeter():
      feet = float(input("Enter distance in feet: "))
      print(feet*0.305)
    
    FootToMeter()
    answer = input("Enter yes or no if you would like to calculate meters to feet: ")
    if answer == "yes":
      MeterToFoot()
    elif answer == "no":
      FootToMeter()