Рубрики
Без рубрики

На этот раз я сделал это в одной строке – объяснение вызова надесов

Я разработал привычку писать посты о однострочных решениях для Kata (вызовы) на хойедеварах. В … с меткой начинающих, Python.

У меня была привычка писать Сообщения о одной линии решений Kata (вызовы) на тростниках. В прошлом они все были о одной линии решений, написанных другими кодовыми воинами. Но на этот раз я придумал одну строку. Я не был первым, но я сам придумал это. Идея этого Ката должен был определить, имело ли у строки равное количество “x” s и “o” s. Вот мое решение:

def xo(s):
    return s.lower().count('x') == s.lower().count('o')

Примечание: под одной линией я имею в виду одну линию функционального тела.

Я начал с оператора возврата, потому что следующее выражение оно вернет логическое значение: Верно Если “x” s и “o” s одинаковы по количеству, и в противном случае Ложный Анкет

Теперь это становится немного плотным, поэтому я выберу его на части. С каждой стороны теста на равенство мы начинаем с S.Lower () Анкет Результатом этого выражения будет строка более низкого регистра. Назовем это S.Low Анкет Теперь мы видим это S.Lower (). County ') эквивалентен медленному.count (‘x’), что вернет номер символа «x» в строке s . s.lower (). Count ('o') сделает то же самое. Теперь по обе стороны от == , у нас есть выражение для числа одного из этих символов в строке с . Если эти числа равны, функция возвращает Верно Анкет Иначе функция возвращает Ложный Анкет

Примечание: более читаемое решение будет:

def xo(s):
    s = s.lower()
    return s.count('x') == s.count('o')

На самом деле это была моя первая идея, и это самое популярное решение для этой каты на ходатах. Поскольку Python-это все о читабельности, я должен сказать, что это лучшее решение, но у меня разработала необычная растворы.

Я подозреваю, что вернусь с другим из них в ближайшем будущем. До тех пор, наслаждайтесь и будьте здоровы.

~ Erik

Оригинал: “https://dev.to/ekand/this-time-i-did-it-in-one-line-a-codewars-challenge-explanation-25im”