Когда вы попросили объяснения, я пишу для вас ответ.
Но имейте в виду, за исключением очень особых случаев (таких как код гольфа), я настоятельно не одобряю эту практику.
Если вы не хотите использовать if
else
, вы можете просто «обмануть», используя тот факт, что True
преобразуется в 1
неявно и False
в 0
в некоторых случаях.
Вы можете использовать его двумя способами:
Решение 1
Доступ к элементам в массиве преобразует bool
в int
, давайте построим массив с нужным элементом в правом индексе:
[-1,0][string==string[::-1]]
Если string==string[::-1]
оценивается как True
(это палиндром), тогда будет доступен второй элемент массива. В противном случае первый.
Решение 2
Другое решение - найти «функцию», которая преобразует 1
в 0
и 0
в -1
. Самый простой f(x) = x - 1
Что приводит к:
(string == string[::-1]) - 1
Имейте в виду, мой комментарий был скорее шуткой, чем реальным решением, вы, вероятно, не должны использовать его в реальном мире!
PS: Под «никакими условиями» я подозреваю, что это означает «без сравнения букв одна за другой», но я думаю, что
if string == string[::-1]:
print(0)
else:
print(-1)
полностью приемлемо.