Step 6 (S-14670)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3366/step/6


Еще один вариант решения этой задачи отличается от предыдущего решения только вводом данных.

S-14670-1.png

Как у нас устроен ввод данных? У нас два числа вводятся в одной строке. Для того, чтобы получить эти два числа, мы читаем всю строку, разбиваем ее на части по пробельному символу и к каждой части применяем функцию int (преобразование к целому числу). В таких ситуациях, когда к последовательности объектов нам нужно применить одну и ту же функцию, можно использовать специальную конструкцию, которая называется "list comprehension". Она устроена следующим образом.

S-14670-2.png

Выражение генерирующее последовательность пишется справа. В нашем примере оно генерирует последовательность строк - "3" , "7".

S-14670-3.png

В левой части записываем функцию, которую хотим применить к нашей последовательности. В качестве аргумента мы передаем ей переменную i, которая будет принимать все значения из нашей последовательности.

S-14670-4.png

Функция и последовательность связаны ключевым выражением for i in. Все выражение целиком заключается в квадратные скобки.

S-14670-5.png

Таким образом, в переменные a и b запишутся целые числа 3 и 7. Эту конструкцию удобно применять, когда несколько чисел вводится в одной строке. Она является стандартной и на практике используется повсеместно. Дальнейшее решение остается прежним.