Python. Подскажите пожалуйста почему не работает конструкция if else когда я ее ужимаю в одну сторку
Без сокращения работает.
s = input()
k, l, m = -1, len(s)//2, 0
for i in range(l):
if s[i] == s[k]:
k-=1
else:
m=1
print("it is") if m==0 else print("its not")
С сокращением не работает.
s = input()
k, l, m = -1, len(s)//2, 0
for i in range(l):
k-=1 if s[i]==s[k] else m=1
print("it is") if m==0 else print("it's not")
Это программа определяющая вводится полиндром или нет. Зачем я ужимаю в 1 строку это дело 10ое, я просто хочу научиться это делать и разобраться почему не работает.
Ответы (2 шт):
Автор решения: Руслан
→ Ссылка
1 вариант.
s = input()
k, l, m = -1, len(s)//2, 0
for i in range(l):
if s[i] == s[k]:
k-=1
else:
m=1
print("it is") if m==0 else print("its not")
2 вариант.
s = input()
k, l, m = -1, len(s)//2, 0
for i in range(l):
k-=1 if s[i]==s[k] else m=1
print("it is") if m==0 else print("it's not")
Автор решения: dIm0n
→ Ссылка
Тернарный оператор работает для expressions, а не для statements.
Поэтому можно написать так:
k -= 1 if s[i]==s[k] else -1
Но нельзя так:
k-=1 if s[i]==s[k] else m=1
Для принта всё в порядке.