意外的最大值,但正确的最小值

2024-10-01 00:23:06 发布

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

我想发生什么:打印输出('542','-214')

当前发生的情况:打印出('6','-214')

我不知道为什么最小的数字是正确的,但6被用作最大。你知道吗

我的Python代码:

def high_and_low(numbers):

    numbers = numbers.split(" ")
    maxNumbers = max(numbers)
    minNumbers = min(numbers)

    numbers = maxNumbers, minNumbers

    return numbers

print(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"))  

我尝试将此更改为:

maxNumbers = int(max(numbers))
minNumbers = int(min(numbers))

但6号还是回来了。你知道吗


Tags: and代码def情况数字minmaxint
3条回答

这对我很有用:

def high_and_low(numbers):

    numbers = [int(n) for n in numbers.split(" ")]
    maxNumbers = max(numbers)
    minNumbers = min(numbers)

    numbers = maxNumbers, minNumbers

    return numbers

print(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"))  

结果:

(542, -214)

当您尝试将max()min()转换为int时,已经太迟了,因为已经根据列表中各种字符串的排名对值进行了评估。在评估它们的等级之前将值转换为int,这是获得所需结果的正确方法。你知道吗

从移动设备上写东西,如果格式化很糟糕,我很抱歉。您需要将字符串值强制转换为数字(整数、浮点)类型。你知道吗

def high_and_low(numbers):
    a =[int(i) for i in numbers.split(" ")]
    return max(a), min(a)

好吧,你是排序字符串而不是整数。 您尝试对int(max(numbers))执行的操作只会将“maximum string”更改为int

在检查最大值和最小值之前,需要将值更改为int。这将起作用:

def high_and_low(numbers):

    numbers = [int(x) for x in numbers.split(" ")]
    maxNumbers = max(numbers)
    minNumbers = min(numbers)

    numbers = maxNumbers, minNumbers

    return numbers

print(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"))

相关问题 更多 >