运用python知识解析这些代码

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)):判断类型是否是列表或者元组,若不是,返回None
if len(seq) == 0:判断输入数据是否为空,若为空,返回None
for 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类型不判断,是的话看最大值是不是小于当前值,是就更新,最后返回最大值