通过if语句返回整数

时间:2014-02-27 03:32:18

标签: python function if-statement

我正在尝试从函数中获取一组3个整数,然后将它传递给另一个函数,然后将它们返回到main函数,说明3个整数中哪个是最大的,我的问题是我不断得到它打印所有3个整数。下面的代码是我所拥有的,我很确定错误是在> def max3函数中....我知道def主函数中的print语句也是不正确的

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print (x)
    print (y)
    print (z)

def max3(x,y,z):
    number1 = x
    number2 = y
    number3 = z
    if x > y < z:
        return (x)
    if y > x < z:
        return (y)
    if z > y < x:
        return (z)



main()

5 个答案:

答案 0 :(得分:0)

从main调用max3!此外,您找到最大数字的逻辑是错误的。你可以找到我的解决方案。您也可以尝试list.append()并使用max()查找该列表中的最大数字。

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print (x)
    print (y)
    print (z)

    print (max3(x,y,z))


def max3(x,y,z):
    largest = z
    if (x > y and x > z):
        largest = x
    elif(y > z):
        largest = y

    return largest



main()

答案 1 :(得分:0)

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print("The max is " + str(max3(x, y, z)))

def max3(x, y, z = None):
    if (z == None):
        if (x > y):
            return x
        else:
            return y
    else:
        maxNum = max3(x, y)
        if (maxNum > z):
            return maxNum
        else:
            return z

或者,使用内置的max()函数:

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print("The max is " + str(max(x, y, z)))

答案 2 :(得分:0)

如何使用python的内置max()函数:

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print(max(x,y,z))

OR

def main():
    numbers = []
    for prompt in "Give me a number: ", "Another: ", "Another: ":
        numbers.append(int(input(prompt)))
    print(max(numbers))

OR

prompts = "Give me a number: ", "Another: ", "Another: "
print(max(int(input(prompt)) for prompt in prompts))

答案 3 :(得分:0)

在您编写的代码中,函数max3永远不会被使用。也许你想从main调用这个函数?

def main():
    ...
    max3(x,y,z)

...表示您要执行的输入和任何打印。

我认为你也应该在python提示符下尝试一些数字。例如:

x=4.5
y=4
z=5
x>y<z

结果如何?这是你所期望的吗?您可以将两个条件与and配对:

x=0.2
x<1 and x>0

例如。

答案 4 :(得分:0)

在main函数中,您将获得x,y,z变量并打印所有变量。不要求max3函数返回最大值。这就是它打印所有这些的原因。

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print (x)
    print (y)
    print (z)

在max3函数中,你应该返回最大值,但它不会返回最大值。此函数也不保证返回某个值。

def max3(x,y,z):
    number1 = x
    number2 = y
    number3 = z
    if x > y < z: # this line should check if x is maximum, so condition is like: y < x > z
        return (x)
    if y > x < z: # this too
        return (y)
    if z > y < x: # this too
        return (z)

main()

更正版本:

def main():
    x = int(input("Give me a number: "))
    y = int(input("Another: "))
    z = int(input("Another: "))
    print max3(x,y,z)

def max3(x,y,z):
    number1 = x
    number2 = y
    number3 = z
    if y <= x >= z:
        return (x)
    if x <= y >= z:
        return (y)
    if x <= z >= y:
        return (z)

main()