Решение, данное @blhsing, является лучшим. Но если вы хотите, чтобы ваш код работал, вы можете сделать это:
def tuplasemstr(t):
tup1 = []
n = 0
while n < len(t):
if not isinstance(t[n], str):
list.append(tup1, t[n])
n = n + 1
return tuple(tup1)
t = ('a', 3, 2.1, 'c', 32)
print(tuplasemstr(t)) # (3, 2.1, 32)
Чтобы проверить строки, вы должны использовать isinstance
внутри цикла while. Кроме того, не задавайте длину жестко с помощью n <= 2
, используйте n < len(t)
.