Решение модуля 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.

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции convert_to_miles()
def convert_to_miles(km):
    ml = km * 0.6214   # Преобразование километров в мили
    return ml          # Возвращаем результат в милях

# Считывание данных
num = int(input())     # Считываем количество километров, которое нужно преобразовать в мили

# Вызов функции convert_to_miles() и вывод результата
print(convert_to_miles(num))

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции get_days()
def get_days(month):
    # Если месяц принадлежит к месяцам с 31 днем
    if month in [1, 3, 5, 7, 8, 10, 12]:  
        return 31   # Возвращаем 31 день
    # Если месяц принадлежит к месяцам с 30 днями
    elif month in [4, 6, 9, 11]:  
        return 30   # Возвращаем 30 дней
    else:
        return 28   # В остальных случаях возвращаем 28 дней (февраль)

# Считывание данных
num = int(input())  # Считываем номер месяца

# Вызов функции get_days() для определения количества дней в месяце и вывод результата
print(get_days(num))

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции get_factors()
def get_factors(num):
    l = []  # Создаем пустой список для хранения делителей
    # Проходим по всем числам от 1 до num // 2
    for i in range(1, num // 2 + 1):  
        if num % i == 0:  # Если num делится без остатка на i
            l.append(i)   # Добавляем i в список делителей

    # Добавляем само число num в список делителей, так как любое число делится само на себя        
    l.append(num)  
    return l              # Возвращаем список делителей


# Считывание данных
n = int(input())  # Считываем число, для которого нужно найти делители

# Вызов функции get_factors() для определения всех делителей и вывод результата
print(get_factors(n))

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции number_of_factors()
def number_of_factors(num):
    # Изначально устанавливаем значение равное 1, так как число всегда делится само на себя
    n = 1  
    
    # Проходим по всем числам от 1 до половины заданного числа
    for i in range(1, num // 2 + 1):  
        if num % i == 0:  # Если num делится без остатка на i
            n += 1        # Увеличиваем счетчик делителей на 1

    return n              # Возвращаем количество делителей


# Считываем число, для которого нужно определить количество делителей
n = int(input())  

# Вызов функции number_of_factors() для определения количества делителей и вывод результата
print(number_of_factors(n))

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

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции find_all()
def find_all(target, symbol):
    n = 0   # Инициализируем переменную n для отслеживания текущего индекса
    l = []  # Создаем пустой список l для хранения индексов символов

    for i in target:     # Проходим по каждому символу в строке target
        if i == symbol:  # Если текущий символ равен заданному символу
            l.append(n)  # Добавляем текущий индекс n в список l

        n += 1           # Увеличиваем индекс n на 1

    return l             # Возвращаем список индексов, где найден заданный символ


# Считывание данных
s = input()      # Считываем строку, в которой будем искать символ
char = input()   # Считываем символ, который нужно найти в строке

# Вызов функции find_all() для поиска всех индексов заданного символа и вывод результата
print(find_all(s, char))

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Определение функции merge()
def merge(list1, list2):
    # Объединяем два списка в один
    l = list1 + list2
    
    # Сортируем объединенный список
    l.sort()
    
    # Возвращаем отсортированный список
    return l

# Считывание данных
numbers1 = [int(c) for c in input().split()]  # Считываем первый список чисел и преобразуем каждый элемент в целое число
numbers2 = [int(c) for c in input().split()]  # Считываем второй список чисел и также преобразуем каждый элемент

# Вызываем функцию merge() для объединения и сортировки списков, затем выводим результат
print(merge(numbers1, numbers2))

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

Решение модуля 13.4 из курса «Поколение Python: для начинающих»
# Объявление функции quick_merge(), которая выполняет сортировку слиянием на месте для двух списков
def quick_merge(lst1, lst2):
    res = []       # Результирующий список
    p1, p2 = 0, 0  # Индексы текущих элементов для lst1 и lst2

    # Пока есть элементы в обоих списках, сравниваем их и добавляем минимальный в res
    while p1 < len(lst1) and p2 < len(lst2):
        if lst1[p1] < lst2[p2]:
            res.append(lst1[p1])
            p1 += 1
        else:
            res.append(lst2[p2])
            p2 += 1

    # Если все элементы lst1 были добавлены, добавляем оставшиеся элементы lst2 и наоборот
    if p1 == len(lst1):
        res += lst2[p2:]
    else:
        res += lst1[p1:]

    return res

res = []  # Результирующий список

# Считываем количество списков для сортировки
for _ in range(int(input())):
    num = [int(c) for c in input().split()]  # Считываем список чисел
    res = quick_merge(res, num)  # Вызываем quick_merge() для сортировки и объединения списков

# Выводим отсортированный результирующий список
print(*res)

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

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

Почему мы проходим от 1 до половины числа?

Legachin
Legachin
1 год назад

Для последней задачи 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
1 год назад

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

Дмитрий
Дмитрий
2 лет назад

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

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

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

kadr
kadr
Ответить на  admin
2 лет назад

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

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