def my_max(seq):
max_value = None
if not isinstance(seq, (list, tuple)):
return max_value
if len(seq) == 0:
return max_value
max_value = seq[0]
for i in seq:
if not isinstance(i, (float, int)):
continue
if max_value < i:
max_value = i
return max_value
if name == "main":
lst = [3, 4, '43', 5.4]
print(my_max(lst))
if not isinstance(seq, (list, tuple)):
判断类型是否是列表或者元组,若不是,返回Noneif len(seq) == 0:
判断输入数据是否为空,若为空,返回Nonefor i in seq: if not isinstance(i, (float, int)):
循环判断类型,若不能用于比较数值大小,就进入下一次循环if max_value < i: max_value = i
更新最大值
最后返回
传入列表之后首先判断变量类型。如果不是list或者tuple直接返回max_value,如果长度为0 返回max_value,
否则再循环,如果不是int或者float类型不判断,是的话看最大值是不是小于当前值,是就更新,最后返回最大值