+6 投票
分类:调试问题 | 用户: 8 5 3 (1.4k 分)
重新分类 用户:

这是一个从列表中提取最大值和最小值的函数,但提取结果和预期不符。以下是代码,怀疑问题出现在了标绿的两行中。

def minmax(data):

    Max=data[0]

    Min=data[0] 

    for i in range(len(data)):

        if Max>data[i] and Min<data[i]:

            continue

        elif Max>data[i] and Min>data[i]:

            Min=data[i]

        elif Max<data[i] and Min>data[i]:

            Min=data[i]

            Max=data[i]

        elif Max<data[i] and Min>data[i]:

            Max=data[i]

    return (Min,Max)

data = [2,16,4,5,15,2,2,2]

minmax(data)

输出为:(2,2)

预期为:(2,15)

1个回答

+2 投票
用户:
采纳于 用户:
 
已采纳
def minmax(data):

    Max=data[0]

    Min=data[0]

    for i in range(len(data)):

        if Max>data[i] and Min<data[i]:

            continue

        elif Max>data[i] and Min>data[i]:

            Min=data[i]

        elif Max<data[i] and Min<data[i]:

            Max=data[i]

    return (Min,Max)

data = [2,16,4,5,15,2,2,2]

minmax(data)

首先预期值应该是[2,16]

列表中的数应该只有三种情况,分别是在max,min的前面,中间和后面
欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...