在Python 3.4中打印最小 - 最小

时间:2015-07-13 22:33:42

标签: python

我正在学习Python,这是来自我喜爱的Udacity课程,“通过Python介绍计算机科学”。我的尝试在这里:

def biggest(x,y,z):
    max = x
    if y>max:
        max = y
    if  z>max:
        max = z
    return max

def smallest(x,y,z):
    min = x
    if y<min:
        min = y
        if z<min:
            min = z
    return min

def set_range(x,y,z):
    result==biggest-smallest
    return result


print set_range(10, 4, 7)

我收到错误消息:

"line 18, in set_range
    result=biggest-smallest
TypeError: unsupported operand type(s) for -: 'function' and 'function'"

为什么我收到此错误?

2 个答案:

答案 0 :(得分:1)

我不知道你为什么两次使用相同的函数,但是你需要实际调用函数,传递参数并使用=来分配非==的相等性:

def biggest(x, y, z):
    mx = x 
    if y > mx:
        mx = y
    if z > mx:
        mx = z
    return mx    

def smallest(x, y, z):
    mn = x
    if y < mn:
        mn = y
    if z < mn:
        mn = z
    return mn


def set_range(x, y, z):
    # use  "=" for assignment not  "==" for equality
    result = biggest(x, y, z) - smallest(x, y, z)
    return result

print set_range(10, 4, 7)

==用于测试两个值是否相等,即1 == 1,单个=用于为名称赋值{{1} }}

最好避免遮蔽内置的max和min函数,以便更改函数中的名称。

答案 1 :(得分:0)

以下是一些更正

def biggest(x,y,z):
    max = x
    if y>max:
        max = y
    if  z>max:
        max = z
    return max

def smallest(x,y,z):
    min = x
    if y<min:
        min = y
        if z<min:
            min = z
    return min

def set_range(x,y,z):
    big = biggest(x,y,z) #assign the function result to a variable
    small = smallest(x,y,z) #also let it inherit the inputs
    result = big - small
    print big
    print small
    return result


print set_range(10, 4, 7)