Когда вы делаете while isintance(tup,int)
, функция оценивает кортеж, а не каждый элемент. Чтобы достичь того, что вы хотите, вам нужно перебрать кортеж. Пример ниже:
def contains_only_integers(tup):
for item in tup:
if not isinstance(item, int):
return False
return True
Если код найдет любой элемент в кортеже, который не является целочисленным экземпляром, он вернет False. В противном случае он вернет True.
EDIT
Как вы сказали, вам нужно использовать цикл while
, вот оно:
def contains_only_integers(tup):
i = 0
while i < len(tup):
if isinstance(tup[i], int)==False:
return False
i+=1
return True