lambda num: num.isnumeric(), word_list)]
print(num_list)
В функцию filter() передается лямбда-выражение, проверяющее слова, и список слов. Функция возвращает список строк-чисел. Далее с помощью генератора списка строки преобразовываются в целочисленный тип.
На практике при решении подобных задач, когда надо найти и извлечь из строки что-либо, обычно пользуются регулярными выражениями. В примере ниже не обязательно, чтобы число было отделено пробелами.
import re
s = input()
nums = re.findall(r'\d+', s)
nums = [int(i) for i in nums]
print(nums)
Для поиска вещественных чисел:
import re
s = input()
nums = re.findall(r'\d*\.\d+|\d+', s)
nums = [float(i) for i in nums]
print(nums)
Найти наименьшее общее кратное (НОК) пары чисел по формуле
НОК = ab / НОД(a, b),
где a и b - это натуральные числа, НОД - наибольший общий делитель.
Из условия задачи ясно, чтобы найти НОК, надо сначала найти НОД. Последний можно вычислить, постепенно находя остаток от деления большего числа из пары на меньшее и присваивая остаток переменной, связанной с большим числом (см. алгоритм Евклида). В какой-то момент значение одной из переменных станет равным 0. Когда это произойдет, другая будет содержать НОД. Если неизвестно, какая именно переменная содержит НОД, то можно просто сложить значения обоих переменных.
В коде ниже используется функция для нахождения НОК, которая принимает два числа и возвращает найденное наименьшее общее кратное.
В основной ветке программы функция вызывается в цикле, который завершается, если то, что было введено, нельзя преобразовать к целому. В этом случае генерируется исключение и поток выполнения переходит к ветке except.
Достарыңызбен бөлісу: |