Решение модуля 13.4 из курса «Поколение Python: для начинающих»

Рассказываю про решения и показываю ответы на модуль и по совместительству урок 13.4 из «Поколение Python: курс для начинающих» на языке программирования питоне.

Функция 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.

Примечание. Следующий программный код:

print(convert_to_miles(1))
print(convert_to_miles(5))
print(convert_to_miles(10))
должен выводить:

0.6214
3.107
6.214
Тестовые данные 🟢

# объявление функции
convert_to_miles = lambda km: km * 0.6214
    

# считываем данные
num = int(input())

# вызываем функцию
print(convert_to_miles(num))

Количество дней
Напишите функцию get_days(month), которая принимает в качестве аргумента номер месяца и возвращает количество дней в данном месяце.

Примечание 1. Гарантируется, что передаваемый аргумент находится в диапазоне от 1 до 12.

Примечание 2. Считайте, что год является невисокосным.

Примечание 3. Следующий программный код:

print(get_days(1))
print(get_days(2))
print(get_days(9))
должен выводить:

31
28
30

def get_days(month):
    m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    return m[month - 1]
num = int(input())

print(get_days(num))

Делители 1
Напишите функцию get_factors(num), принимающую в качестве аргумента натуральное число и возвращающую список всех делителей данного числа.

Примечание. Следующий программный код:

print(get_factors(1))
print(get_factors(5))
print(get_factors(10))
должен выводить:

[1]
[1, 5]
[1, 2, 5, 10]

def get_factors(num):
    return [n for n in range(1, num + 1) if num % n == 0]
        
n = int(input())
print(get_factors(n))

Делители 2
Напишите функцию number_of_factors(num), принимающую в качестве аргумента число и возвращающую количество делителей данного числа.

Примечание 1. Используйте уже реализованную функцию get_factors(num) из предыдущей задачи.

Примечание 2. Следующий программный код:

print(number_of_factors(1))
print(number_of_factors(5))
print(number_of_factors(10))
должен выводить:

1
2
4

# объявление функции
def number_of_factors(num):
    return len([i for i in range(1, num + 1) if num % i == 0])

# считываем данные
n = int(input())

# вызываем функцию
print(number_of_factors(n))

Найти всех
Напомним, что строковый метод find(‘a’) возвращает местоположение первого вхождения символа a в строке. Проблема заключается в том, что данный метод не находит местоположение всех символов а.

Напишите функцию с именем find_all(target, symbol), которая принимает два аргумента: строку target и символ symbol и возвращает список, содержащий все местоположения этого символа в строке.

Примечание 1. Если указанный символ не встречается в строке, то следует вернуть пустой список.

Примечание 2. Следующий программный код:

print(find_all(‘abcdabcaaa’, ‘a’))
print(find_all(‘abcadbcaaa’, ‘e’))
print(find_all(‘abcadbcaaa’, ‘d’))
должен выводить:

[0, 4, 7, 8, 9]
[]
[4]

def find_all(target, symbol):
    return [x for x in range(len(target)) if target[x] == symbol]

# считываем данные
s = input()
char = input()

# вызываем функцию
print(find_all(s, char))

Merge lists 1
Напишите функцию merge(list1, list2), которая принимает в качестве аргументов два отсортированных по возрастанию списка, состоящих из целых чисел, и объединяет их в один отсортированный список.

Примечание 1. Списки list1 и list2 могут иметь разную длину.

Примечание 2. Можно использовать списочный метод sort(), а можно обойтись и без него 😎.

Примечание 3. Следующий программный код:

print(merge([1, 2, 3], [5, 6, 7, 8]))
print(merge([1, 7, 10, 16], [5, 6, 13, 20]))
должен выводить:

[1, 2, 3, 5, 6, 7, 8]
[1, 5, 6, 7, 10, 13, 16, 20]

def merge(list1, list2):
    return sorted(list1 + list2)
numbers1 = [int(c) for c in input().split()]
numbers2 = [int(c) for c in input().split()]
print(merge(numbers1, numbers2))

Merge lists 2
На вход программе подается число nn, а затем nn строк, содержащих целые числа в порядке возрастания. Из данных строк формируются списки чисел. Напишите программу, которая объединяет указанные списки в один отсортированный список с помощью функции quick_merge(), а затем выводит его.

Формат входных данных
На вход программе подается натуральное число nn, а затем nn строк, содержащих целые числа в порядке возрастания, разделенные символом пробела.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

n=int(input())
def quick_merge(n):
    return sorted([int(i) for i in range(n) for i in input().split()])
print(*quick_merge(n))
Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

5 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Legachin
Legachin
8 месяцев назад

Для последней задачи Merge lists 2, решение:

x = lambda k=int(input()): sorted([int(x) for i in range(k) for x in input().split()])
print(*x())

Roman
Roman
9 месяцев назад

Merge lists 1

# объявление функции
def merge(list1, list2):
list_sum = sorted(list1 + list2)
return list_sum

# считываем данные
numbers1 = [int(c) for c in input().split()]
numbers2 = [int(c) for c in input().split()]

# вызываем функцию
print(merge(numbers1, numbers2))

Дмитрий
Дмитрий
1 год назад

задача про мили и километры
Failed test #1 of 4. Cannot check answer. Perhaps output format is wrong.
не пойму в чем проблема решил по другому та же ошибка

admin
admin
Администратор
Ответить на  Дмитрий
1 год назад

Проверил, на степике ответ принимает, может что то лишнее внесли когда перепечатывали

kadr
kadr
Ответить на  admin
10 месяцев назад

не понятно зачем вы убрали функцию.
return km * 0.6214 — мое решение

5
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x