您应该在第一行(def)上加一个冒号(:)。在def input(a, b, c) :

if a <= b <= c or c <= b <= a :
return b
elif b <= a <= c or c <= a <= b :
return a
else:
return c

此外,我想使用最小值和最大值是比较明智的。Min和max有时直接由CPU支持,有些实现避免了分支(如果是else):

^{pr2}$

或者:def input(a, b, c) :

return min(max(a,b),max(b,c),max(a,c))

最后一个也是数值稳定的。在

在大多数情况下,应该避免使用if-then-else子句。它们减少了流水线的数量,尽管在解释语言中这可能不会提高性能。在

根据评论,我想你想写一个交互式程序。可以这样做:def middle(a, b, c) : #defining a method

return min(max(a,b),max(b,c),max(a,c))
a = int(input("Give a value: "))
b = int(input("Give b value: "))
c = int(input("Give c value: "))
print("The requested value is ")
print(middle(a,b,c)) #calling a method

定义方法永远不会导致Python使用该方法。def块中的a、b和{}不是程序其余部分中的a、b和{}。这些是“碰巧具有相同名称的其他变量”。为了调用方法。您将方法名写在括号内,并将要调用方法的参数括起来。在