#python
#python
Вопрос:
Если у меня есть функция, которая получает аргумент, и я хочу, чтобы этот аргумент возвращал True, если я ставлю правильную табуляцию, но возвращал False, если я добавляю что-либо еще, даже если результат в одном из элементов равен единице (например, 1 1-1 или 1 * 1), как мне это сделать?
Что я могу сделать, чтобы вернуть False, если я добавлю в аргумент tab с элементом типа 1 * 1 или 1-1. В этом случае «tab» может содержать элементы, равные 1, -1 и 0, поэтому 1-1 должен возвращать False. Вот функция:
#lets consider this for tab. as you can see tab is a tuple with 3 tuples, each with 3 elements
tab = ((1,-1,1),(0,-1,0),(-1,1,1))
tab2 = ((1,-1,1),(1-1,-1,0),(-1,1,1))
def eh_tabuleiro(tab):
if len(tab) != 3:
return False
else:
for row in tab:
if len(row) != 3:
return False
else:
for element in row:
if element not in (-1, 0, 1):
return False
return True
В этом случае, если tab, eh_tabuleiro(tab) возвращает True (как и должно быть), но eh_tabuleiro(tab2) также возвращает True, и оно должно быть False . Что я могу сделать?
Заранее спасибо, ребята!
Комментарии:
1. …но 1 * 1 равно 1.
2. Действительно: вы пытаетесь отделить «a = 1» от «a = 0 1». Вы просто не можете: сохраненные данные в памяти точно ТАКИЕ ЖЕ.
3. Вероятно, вам следует использовать строки вместо чисел, чтобы не допустить вычисления «формул».
4. что-то вроде: if str(элемент) != «1»: