我想要发生什么:打印出来('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还是回来了。
答案 0 :(得分: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
是获得您正在寻找的结果的正确方法。
答案 1 :(得分:1)
嗯,你正在排序字符串而不是整数。 您尝试使用`int(max(数字))只会将“最大字符串”更改为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"))
答案 2 :(得分:0)
从移动设备上写字,抱歉,如果格式很糟糕。您需要将字符串值转换为数字(整数,浮点)类型。
def high_and_low(numbers):
a =[int(i) for i in numbers.split(" ")]
return max(a), min(a)