Ясно, что вы не приняли достаточно внимания на замечания RemcoGerlich, так как вы upvoted и принял бессмысленный ответ.
В то время я пишу это, еще 4 человека поддержали тот же бессмысленный ответ.
Это невероятно.
Вы увидите лучше с этим? :
def OP(a,b,c):
return not isinstance(a, int)\
or not isinstance(b, int)\
or not isinstance(c, int)\
or not isinstance(a, float)\
or not isinstance(b, float)\
or not isinstance(c, float)
def AZ(a,b,c):
return all(isinstance(var, (int, float))
for var in [a, b, c])
gen = ((a,b,c) for a in (1, 1.1 ,'a')
for b in (2, 2.2, 'b') for c in (3, 3.3, 'c'))
print ' OPv | AZv OPv is AZv\n'\
' -----|----- -----------'
OPV_list = []
for a,b,c in gen:
OPv = OP(a,b,c)
OPV_list.append(OPv)
AZv = AZ(a,b,c)
print '%3r %3r %3r %s | %s %s'\
% (a,b,c,OPv,AZv,OPv is AZv if OPv is not AZv else '')
print '------------- ----'
print 'all(OPV_list) : ',all(OPV_list)
результат
ОПВ = ваш
AZV = бессмысленны ответ
я ограничен, б, в, чтобы сделать его коротким
OPv | AZv OPv is AZv
-----|----- -----------
1 2 3 True | True
1 2 3.3 True | True
1 2 'c' True | False False
1 2.2 3 True | True
1 2.2 3.3 True | True
1 2.2 'c' True | False False
1 'b' 3 True | False False
1 'b' 3.3 True | False False
1 'b' 'c' True | False False
1.1 2 3 True | True
1.1 2 3.3 True | True
1.1 2 'c' True | False False
1.1 2.2 3 True | True
1.1 2.2 3.3 True | True
1.1 2.2 'c' True | False False
1.1 'b' 3 True | False False
1.1 'b' 3.3 True | False False
1.1 'b' 'c' True | False False
'a' 2 3 True | False False
'a' 2 3.3 True | False False
'a' 2 'c' True | False False
'a' 2.2 3 True | False False
'a' 2.2 3.3 True | False False
'a' 2.2 'c' True | False False
'a' 'b' 3 True | False False
'a' 'b' 3.3 True | False False
'a' 'b' 'c' True | False False
------------- ----
all(OPV_list) : True
Поскольку либо 'isinstance (а, Int)' или 'isinstance (a, float)' будет False, ответ smartass заключается в том, что if всегда истинно и может быть полностью опущен ... – RemcoGerlich
Я бы просто опустил проверку и поймал любые возникающие ошибки в следующем коде. – Matthias
Взгляните на мой ответ, пожалуйста, чтобы увидеть проблему .... – eyquem