Помогите разобрать код на Python

Алексей

Новичок
Пользователь
Апр 22, 2020
6
1
3
Python:
def whos_first(str1, str2):
    result = [i for i in str1 if i != '']
    anode_result = [i for i in str2 if i != '']
    if result == anode_result:
        print('tie')
    elif result > anode_result:
        print('p1')
    else:
        print('p2')

Прошу помочь разобраться в этом коде. Задача такова, что в функцию подаются две строки одинаковой длины, с одним только словом "Bang!" До этого слова и после него могут быть пробелы сколько угодно. Выводится " p1 ", если слово Bang! в первой строке ближе к началу строки, иначе " p2 ". Если равны, то " tie ". Код работает, только не могу понять как...?
 
Последнее редактирование:
  • Мне нравится
Реакции: Student

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Функция принимает на вход 2 строки str1 и str2. Разбивает их на символы и записывает эти символы в виде списков в переменные result и anode_result. Потом сравнивает списки и в зависимости от результата сравнения выводит в консоль ответ (p1, p2 или tie).
Если сравнивать 2 строки одинаковой длины, состоящие из пробелов и слова Bang! то результат будет зависеть от позиции слова в строке потому что сравнение идет посимвольное и буква 'B' больше пробела (B > ' ') и соответственно в какой строке буква находится ближе к началу, та и будет больше при сравнении.
 
  • Мне нравится
Реакции: Student и Алексей

Алексей

Новичок
Пользователь
Апр 22, 2020
6
1
3
Спасибо огромное! Вот это Логика программирования.... ))))
 

Форум IT Специалистов