链接用户输入以运行集合函数(Python)时出现“无效语法错误”

链接用户输入以运行集合函数(Python)时出现“无效语法错误”,python,Python,我正在尝试设置一个“华氏温度到摄氏温度”和“摄氏温度到华氏温度”计算器,允许用户选择是否要将摄氏温度转换为华氏温度或将visa转换为华氏温度,但我遇到了一个无效的语法错误,我不太清楚原因。// 我知道这个问题可能非常基本,我对python还比较陌生 CelsiusorFarenheit = input("Would you like Celsius to Farenheit or Farenheit to Celcius?") if CelsiusorFarenheit == "celsius"

我正在尝试设置一个“华氏温度到摄氏温度”和“摄氏温度到华氏温度”计算器,允许用户选择是否要将摄氏温度转换为华氏温度或将visa转换为华氏温度,但我遇到了一个无效的语法错误,我不太清楚原因。// 我知道这个问题可能非常基本,我对python还比较陌生

CelsiusorFarenheit = input("Would you like Celsius to Farenheit or Farenheit
to Celcius?")
if CelsiusorFarenheit == "celsius" or "Celsius":
 def Celsius():
  centToFaren = int(input("Enter a temperature in Celsius: "))
  Farenheit= 9.0/5.0 * centToFaren+32
  print ("Temperature:", centToFaren, "Celsius =", Farenheit, "F")
else CelsiusorFarenheit == "farenheit" or "Farenheit":
 def Farenheit():
  farenToCent = int(Input("Enter a temperature in Farenheit: "))
  Celcius=(farenToCent-32)*5.0/9.0
  print("Temperature:", centToFaren, "Fahrenheit =", Celcius, "C")

从上面的代码中我注意到了几点

要解决语法错误,需要将else更新为elif,后跟条件

要进一步改进代码2点,可以按如下方式调用变量lower

CelsiusorFarenheit.lower()
并将比较更新为长格式,如下所示

def celsius():
    centToFaren = int(input("Enter a temperature in Celsius: "))
    Farenheit= 9.0/5.0 * centToFaren+32
    print ("Temperature:", centToFaren, "Celsius =", Farenheit, "F")

def farenheit():
    farenToCent = int(Input("Enter a temperature in Farenheit: "))
    Celcius=(farenToCent-32)*5.0/9.0
    print("Temperature:", centToFaren, "Fahrenheit =", Celcius, "C")

if CelsiusorFarenheit.lower() == "celsius":
    celsius()
elif CelsiusorFarenheit.lower() == "farenheit":
    farenheit()

您正在else块中放置一个条件,这是一个语法错误。else块在没有其他条件匹配时执行,因此它们不能有条件。您可以将其更改为elif语句或删除该条件。因此,改变这一行:

else CelsiusorFarenheit == "farenheit" or "Farenheit":
为此:

elif CelsiusorFarenheit.lower() == "farenheit":
或者这个:

else:

啊,我明白了,这是有道理的。啊,我明白了,我很感激添加的指针!这已经解决了我现在的问题,我只需要它以两个十进制值打印两个输出值。这也会解决我的问题,谢谢你的帮助!总是乐于提供帮助:elif CelsiusorFarenheit==farenheit或farenheit:可能不会做您认为它会做的事情:这确实解决了错误消息,但它没有解释语句背后的错误逻辑,也没有解决代码中可以改进的其他问题