Я работаю на питоне exercise, который спрашивает:двойной, если условие в Python для цикла
# Return True if the string "cat" and "dog" appear the same number of
# times in the given string.
# cat_dog('catdog') → True
# cat_dog('catcat') → False
# cat_dog('1cat1cadodog') → True
Это мой текущий код:
def cat_dog(str):
c=0
d=0
for i in range(len(str)-2):
if str[i:i+3]=="cat":
c=+1
if str[i:i+3]=="dog":
d=+1
return (c-d)==0.0
Я смотрю на него, и я думаю, что он должен но он не прошел некоторые тесты, которые подсказывают мне, что я не понимаю что-то в том, как работает логика Python. Любое объяснение, почему мое решение не работает, было бы здорово. Это все результаты тестов:
cat_dog('catdog') → True True OK
cat_dog('catcat') → False False OK
cat_dog('1cat1cadodog') → True True OK
cat_dog('catxxdogxxxdog') → False True X
cat_dog('catxdogxdogxcat') → True True OK
cat_dog('catxdogxdogxca') → False True X
cat_dog('dogdogcat') → False True X
cat_dog('dogdogcat') → False True OK
cat_dog('dog') → False False OK
cat_dog('cat') → False False OK
cat_dog('ca') → True True OK
cat_dog('c') → True True OK
cat_dog('') → True True OK
Я думаю, вы имеете в виду 'c + = 1' и' d + = 1' вместо 'c = + 1' и' d = + 1' – dazedconfused
, конечно же, простую опечатку, как видно из ответа gnibbler – MyCarta