我正在尝试创建一个在列表中查找最大数量的函数(不使用max()命令)
但是我的功能对负数不起作用吗?我该如何解决?谢谢!例如,在我的第二次打印测试中,它将打印0而不是-3。
def my_max(data):
"""finds max number in list"""
maximum = 0
for num in data:
if num > maximum:
maximum = num
return maximum
print(my_max([11, 99, 3, -6]))
print(my_max([-3, -5, -9, -10]))
答案 0 :(得分:2)
这是因为您正在使用已经大于-3的任意值(零)来初始化最大变量。尝试使用列表最大=数据[0]
中的第一个元素对其进行初始化答案 1 :(得分:1)
您有2种解决方案:
-10000000
(在任何情况下都不起作用,并且很丑陋)或-math.inf
(在任何情况下都可以工作,但仍然很丑陋)将列表的第一项设置为初始最大值(data[0]
)(在任何情况下均适用)。
第二个解决方案的说明:如果列表中的第一项是最大的一项,则条件将始终解析为False
,并且将返回此初始最大值,或者将其替换为另一个列表中更大的项目,最后返回最大的项目。
答案 2 :(得分:0)
Python中比较模糊的数字类型之一是math.inf
-无限。可以通过以下方式产生:
from math import inf
,然后使用inf
或-inf
(负无穷大),
或
float("inf")
表示正无穷大,float ("-inf")
表示负无穷大