Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Функции

.docx
Скачиваний:
0
Добавлен:
16.06.2026
Размер:
46.29 Кб
Скачать
  1. Напишите функцию, которая принимает на вход число n и возвращает список всех делителей этого числа

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

  1. Для каждого числа от 1 до n проверяем, является ли оно делителем n.

  2. Если остаток от деления n на это число равен 0, то добавляем его в список делителей.

  3. Возвращаем список делителей.

def find_divisors(n):

divisors = []

for i in range(1, n + 1): # Перебираем все числа от 1 до n

if n % i == 0: # Если остаток от деления 0, значит i — делитель n

divisors.append(i)

return divisors

# Пример использования функции

n = int(input("Введите число: "))

result = find_divisors(n)

print(f"Делители числа {n}: {result}")

Результат:

Делители числа 12: [1, 2, 3, 4, 6, 12]

  1. Напишите функцию, которая принимает на вход число и возвращает True, если оно является числом Армстронга, и False в противном случае. (Число Армстронга - это число, которое равно сумме своих цифр, возведенных в степень, равную количеству цифр в числе).

def is_armstrong_number(n):

# Преобразуем число в строку, чтобы легко перебрать его цифры

digits = str(n)

num_digits = len(digits)

# Вычисляем сумму цифр, возведенных в степень num_digits

sum_of_powers = sum(int(digit) ** num_digits for digit in digits)

# Проверяем, равно ли число сумме

return sum_of_powers == n

# Пример использования функции

n = int(input("Введите число: "))

if is_armstrong_number(n):

print(f"{n} является числом Армстронга.")

else:

print(f"{n} не является числом Армстронга.")

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

def get_even_numbers(lst):

# Создаем новый список, в который добавляются только четные числа

even_numbers = [num for num in lst if num % 2 == 0]

return even_numbers

# Пример использования функции

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = get_even_numbers(numbers)

print(f"Четные числа: {result}")

Ввод numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Вывод Четные числа: [2, 4, 6, 8, 10]

6. Напишите функцию, которая принимает на вход список строк и возвращает список строк, в которых содержится подстрока "python".

def filter_strings_by_substring(lst):

# Создаем новый список с строками, содержащими подстроку "python"

filtered_strings = [s for s in lst if 'python' in s.lower()]

return filtered_strings

# Пример использования функции

strings = ["I love Python", "This is a test", "Python is great", "Learning Java", "python is fun"]

result = filter_strings_by_substring(strings)

print(f"Строки, содержащие 'python': {result}")

strings = ["I love Python", "This is a test", "Python is great", "Learning Java", "python is fun"]

Строки, содержащие 'python': ['I love Python', 'Python is great', 'python is fun']

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

def countries_starting_with_K(lst):

# Создаем новый список с странами, начинающимися на букву 'К'

k_countries = [country for country in lst if country.lower().startswith('к')]

return k_countries

# Пример использования функции

countries = ["Канада", "Россия", "Китай", "Испания", "Кения", "Франция"]

result = countries_starting_with_K(countries)

print(f"Страны, начинающиеся на букву 'К': {result}")

Ввод countries = ["Канада", "Россия", "Китай", "Испания", "Кения", "Франция"]

Вывод Страны, начинающиеся на букву 'К': ['Канада', 'Китай', 'Кения']

8. Напишите функцию, которая принимает на вход количество вирусных клеток и время в минутах, и возвращает сколько вирусных клеток будет по истечении указанного времени. Вирусная клетка, выделяет 4 новых бактерии в минуту. каждые 100 бактерий объединяются в новую вирусную клетку, которая также выделяет 4 новых бактерии в минуту

def viral_cells_advanced(initial_cells, time, max_cells=1000, incubation_time=2):

# Начальное количество вирусных клеток

virus_cells = initial_cells

# Начальное количество бактерий

bacteria = 0

# Время инкубации (сколько минут новая вирусная клетка не выделяет бактерии)

virus_cell_ages = [0] * initial_cells # Список возрастов вирусных клеток

for minute in range(1, time + 1):

# Каждая вирусная клетка выделяет 4 бактерии, если она "взрослая"

for i in range(virus_cells):

if virus_cell_ages[i] >= incubation_time:

bacteria += 4

# Поглощение бактерий вирусными клетками, если их много

if bacteria > 1000:

bacteria -= 100 # Каждая вирусная клетка может поглотить до 100 бактерий

if bacteria < 0:

bacteria = 0

# Каждые 100 бактерий превращаются в 1 новую вирусную клетку

new_virus_cells = bacteria // 100

bacteria %= 100 # Оставшиеся бактерии после формирования вирусных клеток

# Ограничиваем количество вирусных клеток

if virus_cells + new_virus_cells > max_cells:

new_virus_cells = max_cells - virus_cells

virus_cells += new_virus_cells

# Обновляем возраст каждой вирусной клетки

for i in range(virus_cells - new_virus_cells, virus_cells):

if virus_cell_ages[i] < incubation_time:

virus_cell_ages[i] += 1

# После каждой минуты, вирусные клетки начинают работать над бактериями

print(f"Минут {minute}: Вирусных клеток: {virus_cells}, Бактерий: {bacteria}")

return virus_cells

# Пример использования функции

initial_cells = int(input("Введите начальное количество вирусных клеток: "))

time = int(input("Введите время в минутах: "))

result = viral_cells_advanced(initial_cells, time)

print(f"Количество вирусных клеток через {time} минут: {result}")

Соседние файлы в предмете Программирование на Python