Решение модуля 15.4 Поколение Python: для продвинутых

Модуль 15.4 (Функции как объекты) курса «Поколение Python: курс для продвинутых» курс расскажет о:

  • Функции как объекты
  • Функции в качестве аргументов других функций
  • Встроенные функции, принимающие функции в качестве аргументов
  • Функции в качестве возвращаемых значений других функций

Публикуем решения на урок 15.4 Функции как объекты.

Что выведет приведенный код? 

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)]

Что выведет приведенный код? 

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))

Решение модуля 15.4 Поколение Python: для продвинутых

Дан список numbers, содержащий кортежи чисел. Напишите программу, которая с помощью встроенных функций min() и max() выводит те кортежи (каждый на отдельной строке), которые имеют минимальное и максимальное среднее арифметическое значение элементов.

def aa(a):
    return sum(a[:]) / len(a[:])

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)]
print(min(numbers, key=aa))
print(max(numbers, key=aa))

Напишите программу, которая сортирует список points координат точек плоскости в соответствии с расстоянием от начала координат (точки(0;0)). Программа должна вывести отсортированный список.

def com(n):
    return 0.5**(n[0]**2+n[1]**2)
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)]
points.sort(key=com, reverse=True)
print(points)

Дан список 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)]

func = lambda x: min(x) + max(x)

print(sorted(numbers, key=func))

Список athletes содержит сведения о спортсменах в виде кортежей: (имя, возраст, рост, вес).

Напишите программу сортировки списка спортсменов по указанному полю:

1: по имени;
2: по возрасту;
3: по росту;
4: по весу.

i = int(input())

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)]

srt = sorted(athletes, key=lambda item: item[i - 1])

for entry in srt:
    print(*entry)

Напишите программу, которая принимает число и название функции, а выводит результат применения функции к данному числу.

Список возможных функций:

— квадрат: функция принимает число и возвращает его квадрат;
— куб: функция принимает число и возвращает его куб;
— корень: функция принимает число и возвращает корень квадратный из этого числа;
— модуль: функция принимает число и возвращает его модуль;
— синус: функция принимает число (в радианах) и возвращает синус этого числа.

from math import *
def get_res(n, f):
    funcs = {'квадрат': n**2,
             'куб': n**3,
             'корень': n**0.5,
             'модуль': abs(n),
             'синус': sin(n)}
    return funcs[f]
a, b = int(input()), input().lower()
print(get_res(a, b))

На вход программе подается строка натуральных чисел. Из элементов строки формируется список чисел.

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

nums = input().split()
def cmp(num):
    n = [int(i) for i in num]
    return sum(n)
nums.sort(key=cmp)
print(*nums)

На вход программе подается строка натуральных чисел. Из элементов строки формируется список чисел.

Напишите программу сортировки списка чисел в порядке неубывания суммы их цифр. При этом, если у двух чисел одинаковая сумма цифр, их следует вывести в порядке неубывания.

def sum_nums(numstr):
    nums = list(map(int, list(numstr)))
    return sum(nums), int(numstr)

s = input().split()
print(*sorted(s, key=sum_nums))

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector