Функции. С возвратом значения. Часть 1
Функция с возвратом значения
Функция do_something() определена следующим образом:
def do_something(number): return number * 2
Что будет выведено в результате выполнения следующего кода?:
print(do_something(10))
Ответ: 20
Функция do_something() определена следующим образом:
def do_something(numbers): result = 1 for i in numbers: result *= i return result
Что будет выведено в результате выполнения следующего кода?:
print(do_something([2, 2, 2, 2]))
Ответ: 16
Функция get_sum() определена следующим образом:
def get_sum(x, y, z): return x + y + z print('Сумма равна', x + y + z)
Что будет выведено в результате выполнения следующего кода?:
print(get_sum(1, 2, 3))
Ответ: 6
Напишите функцию convert_to_miles(km), которая принимает в качестве аргумента расстояние в километрах и возвращает расстояние в милях. Формула для преобразования: мили = километры * 0.6214.
def convert_to_miles(km): return km * 0.6214 # считываем данные num = int(input()) # вызываем функцию print(convert_to_miles(num))
Напишите функцию get_days(month), которая принимает в качестве аргумента номер месяца и возвращает количество дней в данном месяце.
def get_days(month): if month in [1, 3, 5, 7, 8, 10, 12]: return 31 elif month in [4, 6, 9, 11]: return 30 else: return 28 # считываем данные num = int(input()) # вызываем функцию print(get_days(num))
Напишите функцию get_factors(num), принимающую в качестве аргумента натуральное число и возвращающую список всех делителей данного числа.
def get_factors(num): s = [] for i in range(1, num + 1): if num % i == 0: s.append(i) return s
# считываем данные n = int(input()) # вызываем функцию print(get_factors(n))
Напишите функцию number_of_factors(num), принимающую в качестве аргумента число и возвращающую количество делителей данного числа.
def get_factors(num): s = [] for i in range(1, num + 1): if num % i == 0: s.append(i) return s def number_of_factors(num): return len(get_factors(num)) # считываем данные n = int(input()) # вызываем функцию print(number_of_factors(n))
Строковый метод find('a') возвращает местоположение первого вхождения символа a в строке. Проблема заключается в том, что данный метод не находит местоположение всех символов а. Напишите функцию с именем find_all(target, symbol), которая принимает два аргумента: строку target и символ symbol и возвращает список, содержащий все местоположения этого символа в строке.
def find_all(target, symbol): s = [] for i in range(len(target)): if symbol in target[i]: s.append(i) return s # считываем данные s = input() char = input() # вызываем функцию print(find_all(s, char))
Напишите функцию merge(list1, list2), которая принимает в качестве аргументов два отсортированных по возрастанию списка, состоящих из целых чисел, и объединяет их в один отсортированный список.
def merge(list1, list2): s = list1 + list2 s.sort() return s # считываем данные numbers_1 = [int(c) for c in input().split()] numbers_2 = [int(c) for c in input().split()] # вызываем функцию print(merge(numbers_1, numbers_2))
На вход программе подается число n, а затем n строк, содержащих целые числа в порядке возрастания. Из данных строк формируются списки чисел. Напишите программу, которая объединяет указанные списки в один отсортированный список с помощью функции quick_merge(), а затем выводит его.
def quick_merge(list1, list2): result = [] p1 = 0 # list1 p2 = 0 # list2 while p1 < len(list1) and p2 < len(list2): if list1[p1] <= list2[p2]: result.append(list1[p1]) p1 += 1 else: result.append(list2[p2]) p2 += 1 if p1 < len(list1): result += list1[p1:] else: result += list2[p2:] return result # принимаем кол-во строк n = int(input()) res = [int(num) for num in input().split()] for _ in range(n - 1): cur_list = [int(num) for num in input().split()] res = quick_merge(res, cur_list) # выводим результирующий список print(*res)