Функции. Основные концепции программирования
Функции как объекты
Что выведет приведенный код?:
s1 = 'python' s2 = 'stepicon' s3 = 'beegeek' print(min(s1, s2, s3)) print(max(s1, s2, s3))
Ответ: beegeek; stepicon
Что выведет приведенный код?:
s1 = 'python' s2 = 'stepicon' s3 = 'beegeek' print(min(s1, s2, s3, key=len)) print(max(s1, s2, s3, key=len))
Ответ: python; stepicon
Что выведет приведенный код?:
def f(x): return x**2 g = f print(f(3), g(5))
Ответ: 9; 25
Что выведет приведенный код?:
def f(x): return x**2 def g(x): return x**3 funcs = [f, g] print(funcs[0](5), funcs[1](5))
Ответ: 25; 125
Что выведет приведенный код?:
def comparator(pair): return pair[1] pairs = [(5, 4), (3, 2), (1, 7), (8, 2)] pairs.sort(key=comparator) print(pairs)
Ответ: [(3, 2), (8, 2), (5, 4), (1, 7)]
Что выведет приведенный код?:
def comparator(pair): return pair[0] + pair[1] pairs = [(5, 4), (3, 2), (1, 7), (8, 2)] pairs.sort(key=comparator, reverse=True) print(pairs)
Ответ: [(8, 2), (5, 4), (1, 7), (3, 2)]
Что выведет приведенный код?:
def comparator(pair): return pair[0] + pair[1] pairs = [(5, 4), (3, 2), (1, 7), (8, 2)] pairs.sort(key=comparator, reverse=True) print(pairs)
Ответ: [(8, 2), (5, 4), (1, 7), (3, 2)]
Что выведет приведенный код?:
words = ['this', 'is', 'a', 'test', 'of', 'sorting'] words.sort(key=len) print(words)
Ответ: ['a', 'is', 'of', 'this', 'test', 'sorting']
Что выведет приведенный код, если на вход программе подается число, указанное в левом столбце?:
def f1(x): return 2*x+1 def f2(x): return x**2 def f3(x): return -x**2+1 def f4(x): return x-3 funcs = [f1, f2, f3, f4] i = int(input()) print(funcs[i](2))
Ответ:
- 0 5;
- 1 4;
- 2 -3;
- 3 -1;
- 4 ошибка во время выполнения
Дан список numbers, содержащий кортежи чисел. Напишите программу, которая с помощью встроенных функций min() и max() выводит те кортежи (каждый на отдельной строке), которые имеют минимальное и максимальное среднее арифметическое значение элементов.
numbers = [(10, 10, 10), (30, 45, 56), (81, 39), (1, 2, 3), (12,), (-2, -4, 100), (1, 2, 99), (89, 9, 34), (10, 20, 30, -2), (50, 40, 50), (34, 78, 65), (-5, 90, -1, -5), (1, 2, 3, 4, 5, 6), (-9, 8, 4), (90, 1, -45, -21)] def f(l): return sum(l) / len(l) a = min(numbers, key=f) b = max(numbers, key=f) print(a) print(b)
Напишите программу, которая сортирует список points координат точек плоскости в соответствии с расстоянием от начала координат (точки (0;0)). Программа должна вывести отсортированный список.
points = [(-1, 1), (5, 6), (12, 0), (4, 3), (0, 1), (-3, 2), (0, 0), (-1, 3), (2, 0), (3, 0), (-9, 1), (3, 6), (8, 8)] def f(s): return (s[0]**2 + s[1]**2)**0.5 print(sorted(points, key=f))
Дан список numbers, содержащий кортежи чисел. Напишите программу, которая сортирует и выводит список numbers в соответствии с суммой минимального и максимального элемента кортежа.
numbers = [(10, 10, 10), (30, 45, 56), (81, 80, 39), (1, 2, 3), (12, 45, 67), (-2, -4, 100), (1, 2, 99), (89, 90, 34), (10, 20, 30), (50, 40, 50), (34, 78, 65), (-5, 90, -1)] def f(mm): return min(mm) + max(mm) numbers.sort(key=f) print(numbers)
Список athletes содержит сведения о спортсменах в виде кортежей: (имя, возраст, рост, вес). Напишите программу сортировки списка спортсменов по указанному полю:
- 1: по имени;
- 2: по возрасту;
- 3: по росту;
- 4: по весу.
athletes = [('Дима', 10, 130, 35), ('Тимур', 11, 135, 39), ('Руслан', 9, 140, 33), ('Рустам', 10, 128, 30), ('Амир', 16, 170, 70), ('Рома', 16, 188, 100), ('Матвей', 17, 168, 68), ('Петя', 15, 190, 90)] def name(a): return a[0] def age(a): return a[1] def height(a): return a[2] def weight(a): return a[3] cd = {1 : name, 2: age, 3 : height, 4: weight} x = int(input()) for rez in sorted(athletes, key=cd[x]): print(*rez)
Напишите программу, которая принимает число и название функции, а выводит результат применения функции к данному числу.
Список возможных функций:
- квадрат: функция принимает число и возвращает его квадрат;
- куб: функция принимает число и возвращает его куб;
- корень: функция принимает число и возвращает корень квадратный из этого числа;
- модуль: функция принимает число и возвращает его модуль;
- синус: функция принимает число (в радианах) и возвращает синус этого числа.
import math def kvad(x): return x**2 def kub(x): return x**3 def sq(x): return x**0.5 def mod(x): return abs(x) def sn(x): return math.sin(x) cm = {'квадрат' : kvad, 'куб' : kub, 'корень' : sq, 'модуль' : mod, 'синус' : sn} x = int(input()) func = input() print(cm[func](x))
На вход программе подается строка натуральных чисел. Из элементов строки формируется список чисел. Напишите программу сортировки списка чисел в порядке неубывания суммы их цифр. При этом, если два числа имеют одинаковую сумму цифр, следует сохранить их взаиморасположение в начальном списке.
def f(x): x = [int(i) for i in str(x)] return sum(x) x = input().split() print(*sorted(x, key=f))
На вход программе подается строка натуральных чисел. Из элементов строки формируется список чисел. Напишите программу сортировки списка чисел в порядке неубывания суммы их цифр. При этом, если у двух чисел одинаковая сумма цифр, их следует вывести в порядке неубывания.
def f(x): x = [int(i) for i in str(x)] return sum(x) b = sorted([int(i) for i in input().split()]) print(*sorted(b, key=f))