為什么我只會輸出'error'和None
def func(l):
? ? if not isinstance(l,list) or not isinstance(l,tuple):
? ? ? ? print ('error')
? ? ? ? return None
? ? elif isinstance(l,list):
? ? ? ? sum = 0
? ? ? ? for item in l:
? ? ? ? ? ? if isinstance(item,int) or isinstance(item,float):
? ? ? ? ? ? ? ? sum += item
? ? ? ? return sum
? ? elif isinstance(l,tuple):
? ? ? ? sum = 1
? ? ? ? for item in l:
? ? ? ? ? ? if isinstance(item,int) or isinstance(item,float):
? ? ? ? ? ? ? ? sum = sum * item
? ? ? ? return sum
? ? return None
2021-07-21
not isinstance(L,list) or not isinstance(L,tuple)
這個條件相當于L既是list也是tuple才是false,實際上L只能是list,或者只能是tuple,所以條件就永遠都是true
可以試試改成not isinstance(L,list) and not isinstance(L,tuple),或者not (isinstance(L,list) or isinstance(L,tuple))