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

Понравилась статья? Поделиться с друзьями:
Комментарии: 3
  1. Дмитрий

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

    1. admin

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

      1. kadr

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

Добавить комментарий

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

Adblock
detector