使用python 3的中间值

2024-09-28 19:03:11 发布

您现在位置:Python中文网/ 问答频道 /正文

更新

a = int(input("Give a value: "))
b = int(input("Give a value: "))
c = int(input("Give a value: "))
def middle(a, b ,c) :
    m = min(a,b,c)
    M = max(a,b,c)
    return a+b+c-m-M

我在这里。它把我的数字输入数据。我怎么才能让它显示中间那个?!对不起,我做得太糟了。在这个介绍课上,我有点晕头转向。@CommuSoft@Zorg@paxdiablo和其他所有人


Tags: 数据middleinputreturnvaluedef数字min
3条回答

正如其他人提到的,您缺少一个冒号,但为了简单起见:

def middle(a, b, c):
    return sorted([a, b, c])[1]

当你遇到麻烦时,发布你的完整语法错误(或任何其他完整的回溯)。在

你的def行需要一个冒号。在

您应该在第一行(def)上加一个冒号(:)。在

这适用于online python environment

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块中的ab和{}不是程序其余部分中的ab和{}。这些是“碰巧具有相同名称的其他变量”。为了调用方法。您将方法名写在括号内,并将要调用方法的参数括起来。在

相关问题 更多 >