运行代码时出现错误消息。
这是我的代码:
def celsius_to_fahrenheit(celsius):
fahrenheit = celsius * 9/5 + 32
print(celsius_to_fahrenheit(-280))
if celsius < -273.15:
return "That's impossible"
else:
fahrenheit = celsius * 9/5+32
return fahrenheit
print(celsius_to_fahrenheit(-273.4))
这是错误消息:
File "./exercise1.py", line 7
return "That's impossible"
^
SyntaxError: 'return' outside function
感谢您的帮助!
答案 0 :(得分:1)
使用适当的缩进量
def celsius_to_fahrenheit(celsius):
fahrenheit = celsius * 9/5 + 32
if celsius < -273.15:
return "That's impossible"
else:
fahrenheit = celsius * 9/5+32
return fahrenheit
print(celsius_to_fahrenheit(-273.4))
答案 1 :(得分:0)
我的答案纠正了nishant给出的答案(改善了压痕),
尝试这个:
def celsius_to_fahrenheit(celsius):
fahrenheit = celsius * 9/5 + 32
if celsius < -273.15:
return "That's impossible"
else:
fahrenheit = celsius * 9/5+32
return fahrenheit
print(celsius_to_fahrenheit(-273.4))
print(celsius_to_fahrenheit(-280))
让我知道它是如何工作的
答案 2 :(得分:0)
缩进在Python中很重要。由于您的第一个print
语句的缩进与您的'def'相同,因此Python假定您的函数已经结束。因此,请确保函数中应包含的所有内容均已正确缩进。
实际上,第一个打印语句似乎不属于该位置。对函数本身进行这种调用会导致所有循环。另外:
else
。如果检查绝对零点是否通过,则无论如何都将在该点退出函数。9
替换为9.0
,或者只是将9/5
替换为1.8
,则可以强制Python使用浮点数。这是一个可行的简短版本:
def celsius_to_fahrenheit(celsius):
if celsius < -273.15:
return "That's impossible"
return celsius * 9.0/5 + 32
print(celsius_to_fahrenheit(-50))
答案 3 :(得分:0)
发布后,您的函数包含一行代码,其余代码将立即执行。
就像错误消息所言,当您不在函数内部时,不能return
。
可能是您的意思是大部分(但不是全部)代码都是该函数的一部分。这是一个带有推测性的重构,带有注释。
def celsius_to_fahrenheit(celsius):
# Don't perform this calculation twice
# fahrenheit = celsius * 9/5 + 32
# Don't attempt to call the function from within its own definition
if celsius < -273.15:
# raise an error instead of returning a bogus value
raise ValueError("Temperature below absolute zero")
else:
fahrenheit = celsius * 9/5+32
return fahrenheit
# We are now outside the function definition.
# Call the function twice to see that it works.
print(celsius_to_fahrenheit(-273.4))
# Should throw an error:
print(celsius_to_fahrenheit(-280))
答案 4 :(得分:0)
要分解代码中的某些错误:
1:没有return
语句
def celsius_to_fahrenheit(celsius):
fahrenheit = celsius * 9/5 + 32
print(celsius_to_fahrenheit(-280))
在此块中,您需要包含一个return
函数
def celsius_to_fahrenheit(celsius):
fahrenheit = celsius * 9/5 + 32
return fahrenheit
print(celsius_to_fahrenheit(-280))
2:缩进不正确或未定义函数
if celsius < -273.15:
return "That's impossible"
else:
fahrenheit = celsius * 9/5+32
return fahrenheit
对于此代码块,因为您未正确缩进,因此不会作为函数调用的一部分执行。错误的原因是因为您试图return
某个函数中不存在的东西。
答案 5 :(得分:0)
不需要冗余代码。修复缩进,您可以使用:
def celsius_to_fahrenheit(celsius):
if celsius < -273.15:
return "That's impossible"
else:
return celsius * 9/5+32
print(celsius_to_fahrenheit(-273.4))