Вопрос Помогите с кодом на python

Регистрация
21 Июл 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
def xo(s):

s = s.lower()

if 'o' and 'x' not in s:

return True

else:

if s.count('x') == s.count('o'):

return True

else:

return False

print(xo('zzoo'))

Почему данный код выводит True.....??? Я посмотрел в визуализатор и там указано < что 3 строчка выводит True , хотя там условие and(то есть И , СУ КА И ПОНИМАЕТЕ?!)
 
Ну так неправильно условие ИИИ написано
Вот так НАДО if 'o' not in s and 'x' not in s: А у вас просто &#39;o&#39; (всегда True) и &#39;x&#39; не в s
Любая непустая строка интерпретируется как True condition1 and condition2:
condition1 == 'o' (True)
condition2 == 'x' not in s И вообще вам первое условие вообще не нужно, если ниже вы сравниваете число этих букв друг с другом
 
&#34;if &#39;o&#39; and &#39;x&#39; not in s&#34; уже начинает раздражать...
У каждого второго начинающего неразрешимая дилемма именно с построением этой конструкции
 
if s.count(&#39;o&#39;) == 0 and s.count(&#39;x&#39;) == 0:
 
Зачем так сложно-то?
Если букв нет, count вернёт 0. (0 == 0) == True. Проверка существования x и s не нужна.
Само выражение s.count(&#39;x&#39;) == s.count(&#39;o&#39;) УЖЕ возвращает True / False. Использовать if не требуется. def xo(s):
s = s.lower()
return s.count('x') == s.count('o') И это ВЕСЬ необходимый код.
 
Назад
Сверху