проверка на наличие строки в списке
Программа должна работать следующим образом: return True, если каждый элемент в массиве является целым числом или числом с плавающей запятой без десятичных знаков. return True, если массив пуст. return False для всех остальных входных данных.
Почему мой код заканчивается на 5 строке, в списке [1, 2, 3, 4] нет строк или None?
def is_int_array(arr):
if arr == []:
return True
else:
if str or None in arr:
return False
else:
a = sum(arr)
if type(a) == int:
return (True)
elif type(a) == float:
return a.is_integer()
print(is_int_array([1, 2, 3, 4]))
Ответы (1 шт):
Проверка типа делается не так.
Вам каждый элемент нужно проверить в массиве, например так:
if any([isinstance(elem, str) or elem is None for elem in arr]):
return False
Как это работает? Функция isinstance проверяет, что элемент elem является экземпляром одного из классов переданных вторым аргумент, а именно str или None и если да, возращает True, в итоге мы получаем список булевых значений True/False и если какой-то из них будет True, то функция any вернет значение True и мы вернем False.