Python 由于try循环或while循环,最大数目的查找代码出现错误 此代码应该查找最大的数字 当我按顺序插入(200,4100)时,它说4是最大的数字 当我插入类似大小的数字时,它没有问题 我觉得这是因为我缺乏循环知识 有人能教我怎么回事吗?(学生仍在学习)

Python 由于try循环或while循环,最大数目的查找代码出现错误 此代码应该查找最大的数字 当我按顺序插入(200,4100)时,它说4是最大的数字 当我插入类似大小的数字时,它没有问题 我觉得这是因为我缺乏循环知识 有人能教我怎么回事吗?(学生仍在学习),python,python-3.x,Python,Python 3.x,这是因为您正在为函数使用字符串num变量,请尝试只发送中的int变量,并且在比较字符串时,4大于200 更改此行: print(num_max(num1, num2, num3)) 这个是什么 print(num_max(in1, in2, in3)) 你不需要一段时间来寻找输入。这是额外的开销,会降低程序的速度。您还应该将ints本身而不是字符串传递给函数 这应该起作用: def num_max(num1, num2, num3): if num1 >= num2 and n

这是因为您正在为函数使用字符串
num
变量,请尝试只发送
中的int变量
,并且在比较字符串时,4大于200

更改此行:

print(num_max(num1, num2, num3))
这个是什么

print(num_max(in1, in2, in3))

你不需要一段时间来寻找输入。这是额外的开销,会降低程序的速度。您还应该将
int
s本身而不是字符串传递给函数

这应该起作用:

def num_max(num1, num2, num3):
    if num1 >= num2 and num1 >= num3:
        return(num1)
    elif num2 >= num1 and num2 >= num3:
        return(num2)
    else:
        return(num3)


try:
    num1 = input("#1: ")
    num2 = input("#2: ")
    num3 = input("#3: ")

    in1 = int(num1)
    in2 = int(num2)
    in3 = int(num3)
except:
    print("Invalid: Try again")

print(num_max(in1, in2, in3))

补充问题。我是一名自学数学的学生。我在哪里可以问这样的问题?这是我的第二个问题,我觉得这是一个专业的平台,我不敢在这里问。我该去哪里?不要害怕,只要你用清晰的输入和预期/实际输出正确地解释你的问题,你就没事。还要确保你事先搜索到其他类似的问题。是的,有技巧的初学者问题很受欢迎。但是,如果你表现出缺乏研究,或者似乎没有尝试,或者发布了一个不清楚的问题,那就是投反对票的时候了。这个问题很好。是的,没有任何循环,重试不会自动发生。实际上我更喜欢你的loops@lucidbrot用于重试的无限白循环是糟糕的设计。取决于用例imho。如果它是一个在别处调用的函数,我同意它应该抛出一个异常,让调用方处理它——但是如果它是main,为什么不循环呢?
def num_max(num1, num2, num3):
    if num1 >= num2 and num1 >= num3:
        return(num1)
    elif num2 >= num1 and num2 >= num3:
        return(num2)
    else:
        return(num3)


try:
    num1 = input("#1: ")
    num2 = input("#2: ")
    num3 = input("#3: ")

    in1 = int(num1)
    in2 = int(num2)
    in3 = int(num3)
except:
    print("Invalid: Try again")

print(num_max(in1, in2, in3))