В предыдущих уроках мы изучили основы работы с функциями: создание функций, параметры, возврат значений и встроенные функции. Теперь пришло время закрепить эти знания на практике!
В этом уроке мы решим множество задач, используя функции. Это поможет тебе лучше понять, как применять функции для решения реальных задач и как правильно структурировать код.
При решении задач с функциями полезно следовать такому алгоритму:
Создай функции для вычисления площади и периметра различных фигур:
def square_area(side):
return side ** 2
def square_perimeter(side):
return 4 * side
def rectangle_area(length, width):
return length * width
def rectangle_perimeter(length, width):
return 2 * (length + width)
def circle_area(radius):
pi = 3.14
return pi * radius ** 2
def circle_circumference(radius):
pi = 3.14
return 2 * pi * radius
# Использование
print(f"Площадь квадрата: {square_area(5)}")
print(f"Периметр квадрата: {square_perimeter(5)}")
print(f"Площадь прямоугольника: {rectangle_area(5, 7)}")
print(f"Площадь круга: {circle_area(3)}")Создай функции для различных операций с числами:
def is_even(number):
return number % 2 == 0
def is_positive(number):
return number > 0
def get_digits_sum(number):
total = 0
while number > 0:
total += number % 10
number //= 10
return total
def
Создай функции для работы со строками:
def count_vowels(text):
vowels = "аеёиоуыэюя"
count = 0
for char in text.lower():
if char in vowels:
count += 1
return count
def reverse_string(text):
return text[::-1]
def is_palindrome(text):
Создай функции для анализа списка чисел:
def get_statistics(numbers):
if not numbers:
return None
stats = {
"sum": sum(numbers),
"min": min(numbers),
"max": max(numbers),
"average": sum(numbers) / len(numbers),
Создай функции для конвертации различных единиц:
def celsius_to_fahrenheit(celsius):
return celsius * 9/5 + 32
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
def meters_to_feet(meters):
return meters * 3.28084
def feet_to_meters(feet):
return feet /
Создай функции для проверки корректности данных:
def is_valid_email(email):
return "@" in email and "." in email.split("@")[1]
def is_valid_age(age):
return isinstance(age, int) and 0 <= age <= 150
def is_valid_password(password):
return len(password)
Создай функцию calculate_discount(), которая принимает цену и процент скидки и возвращает итоговую цену со скидкой.
def calculate_discount(price, discount_percent):
discount_amount = price * discount_percent / 100
return price - discount_amount
result = calculate_discount(1000, 15)
print(f"Цена со скидкой: {result}") # Цена со скидкой: 850.0Создай функцию get_grade(), которая принимает оценку (от 0 до 100) и возвращает буквенную оценку:
def get_grade(score):
if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
elif score >= 60:
return "D"
else:
return "F"
print(get_grade(85)) # B
Создай функцию count_words(), которая принимает текст и возвращает количество слов в нём.
def count_words(text):
words = text.split()
return len(words)
print(count_words("Привет, как дела?")) # 3Создай функцию calculate_discount(), которая принимает цену товара и процент скидки, и возвращает итоговую цену со скидкой.
Создай функцию is_leap_year(), которая принимает год и возвращает True, если год високосный, и False в противном случае. Год високосный, если он делится на 4, но не делится на 100, или делится на 400.
Создай функцию count_uppercase(), которая принимает строку и возвращает количество заглавных букв в ней.
Создай функцию get_statistics(), которая принимает список чисел и возвращает словарь со статистикой: сумму, минимум, максимум и среднее арифметическое.
Создай функцию reverse_number(), которая принимает целое положительное число и возвращает число с обратным порядком цифр. Например, для числа 123 вернёт 321.
Создай функцию is_anagram(), которая принимает две строки и возвращает True, если они являются анаграммами (содержат одинаковые буквы в разном порядке), и False в противном случае. Игнорируй регистр и пробелы.
Создай функцию calculate_bmi(), которая принимает вес (в килограммах) и рост (в метрах) и возвращает индекс массы тела (ИМТ). Формула: ИМТ = вес / (рост²). Также создай функцию interpret_bmi(), которая принимает ИМТ и возвращает категорию:
Создай функцию power(base, exp), которая возвращает base в степени exp (exp — целое неотрицательное). Реализуй рекурсивно: power(b, e) = b * power(b, e-1), power(b, 0) = 1.
Создай рекурсивную функцию is_palindrome(s), которая возвращает True, если строка — палиндром (с учётом только букв, игнорируя регистр и пробелы).