Python · Синтаксис · Початковий рівень
Функції рівень 2
Розширена практика функцій у Python: обробка строк та чисел, логічні перевірки, списки, фільтрація, підрахунки, пошук значень та написання невеликих функцій, що перевикористовуються.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Патерни цього рівня
#Довідник: методи рядка, зрізи та патерни функцій
#Вправи:
Even або Odd.
#Напишіть функцію, яка приймає число та повертає рядок "Even" , якщо число парне, і "Odd" , якщо непарне.
def even_or_odd(n):
pass
Рішення
def even_or_odd(n):
if n % 2 == 0:
return "Even"
else:
return "Odd"
# або так можна: спочатку отримати остачу
def even_or_odd(n):
rest = n % 2
if rest == 0:
return "Even"
return "Odd"
Перевертання рядка функцією.
#Напишіть функцію, яка приймає рядок та повертає його у перевернутому вигляді.
def reverse_text(text):
pass
Рішення
def reverse_text(text):
return text[::-1]
# або так можна через цикл
def reverse_text(text):
result = ""
for char in text:
result = char + result
return result
Середнє арифметичне.
#Напишіть функцію, яка приймає два числа та повертає їх середнє арифметичне.
def average(a, b):
pass
Рішення
def average(a, b):
return (a + b) / 2
Підрахунок голосних.
#Напишіть функцію, яка приймає рядок та повертає кількість голосних букв у ньому. Голосні: a, e, i, o, u, y (регістр не важливий).
def count_vowels(text):
pass
Рішення
def count_vowels(text):
vowels = "aeiouy"
count = 0
for ch in text.lower():
if ch in vowels:
count += 1
return count
Подільність на 3 і 5.
#Напишіть функцію, яка приймає число та повертає True , якщо воно ділиться на 3 і на 5, інакше False .
def divisible_by_3_and_5(n):
pass
Рішення
def divisible_by_3_and_5(n):
return n % 3 == 0 and n % 5 == 0
Рядок без пробілів.
#Напишіть функцію, яка приймає рядок та повертає його без пробілів.
def remove_spaces(text):
pass
Рішення
def remove_spaces(text):
result = ""
for ch in text:
if ch != " ":
result += ch
return result
# або так:
def remove_spaces(text):
return text.replace(" ", "")
Сума додатних елементів.
#Напишіть функцію, яка приймає кортеж чисел і повертає суму додатних елементів.
def sum_positive(numbers):
pass
Рішення
def sum_positive(numbers):
total = 0
for n in numbers:
if n > 0:
total += n
return total
Перевірка паліндрома.
#Напишіть функцію, яка приймає рядок і повертає True , якщо він є паліндромом.
def is_palindrome(text):
pass
Рішення
def is_palindrome(text):
return text == text[::-1]
# або так можна: підготувати перевернутий рядок окремо
def is_palindrome(text):
reversed_text = text[::-1]
return text == reversed_text
Positive, Negative або Zero.
#Напишіть функцію, яка приймає число і повертає рядок: "Positive", "Negative" або "Zero".
def describe_number(n):
pass
Рішення
def describe_number(n):
if n > 0:
return "Positive"
elif n < 0:
return "Negative"
else:
return "Zero"
Кількість слів у рядку.
#Напишіть функцію, яка приймає рядок та повертає кількість слів у ньому. Слова розділені пробілами.
def count_words(text):
pass
Рішення
def count_words(text):
if text == "":
return 0
return len(text.split())
Кратність десяти.
#Напишіть функцію, яка приймає число та повертає True , якщо воно кратне 10, інакше False .
def is_multiple_of_ten(n):
pass
Рішення
def is_multiple_of_ten(n):
return n % 10 == 0
Перший і останній символ функцією.
#Напишіть функцію, яка приймає рядок і повертає його перший та останній символ у вигляді одного рядка.
def first_and_last(text):
pass
Рішення
def first_and_last(text):
if text == "":
return ""
return text[0] + text[-1]
Yes, якщо більше 100.
#Напишіть функцію, яка приймає число та повертає рядок "Yes" , якщо число більше 100, інакше "No" .
def more_than_hundred(n):
pass
Рішення
def more_than_hundred(n):
if n > 100:
return "Yes"
return "No"
# Або так через тернарний оператор:
def more_than_hundred(n):
return "Yes" if n > 100 else "No"
Підрахунок букви a.
#Напишіть функцію, яка приймає рядок та повертає кількість букв "a" у ньому (регістр не важливий).
def count_a(text):
pass
Рішення
def count_a(text):
count = 0
for ch in text.lower():
if ch == "a":
count += 1
return count
# або
def count_a(text):
return text.lower().count("a")
Різниця за модулем.
#Напишіть функцію, яка приймає два числа та повертає їх різницю за модулем.
def abs_diff(a, b):
pass
Рішення
def abs_diff(a, b):
diff = a - b
if diff < 0:
diff = -diff
return diff
# або так можна через abs
def difference(a, b):
return abs(a - b)
Парна довжина рядка.
#Напишіть функцію, яка приймає рядок та повертає True , якщо його довжина парна, інакше False .
def is_even_length(text):
pass
Рішення
def is_even_length(text):
return len(text) % 2 == 0
Остання цифра числа.
#Напишіть функцію, яка приймає число int та повертає останню цифру цього числа у вигляді int.
def last_digit(n):
pass
Рішення
def last_digit(n):
if n < 0:
n = -n
return n % 10
# або так можна через рядок
def last_digit(n):
return int(str(abs(n))[-1])
Без першої та останньої літери.
#Напишіть функцію, яка приймає рядок та повертає його без першої та останньої літери.
def trim_edges(text):
pass
Рішення
def trim_edges(text):
if len(text) <= 2:
return ""
return text[1:-1]
Small, Medium або Large.
#Напишіть функцію, яка приймає число та повертає рядок: - "Small" — якщо число менше 10 - "Medium" — якщо від 10 до 100 - "Large" — якщо більше 100
def size_label(n):
pass
Рішення
def size_label(n):
if n < 10:
return "Small"
elif n <= 100:
return "Medium"
else:
return "Large"
Видалення знаків оклику.
#Напишіть функцію, яка приймає рядок та повертає його без усіх знаків оклику "!" .
def remove_exclamations(text):
pass
Рішення
def remove_exclamations(text):
result = ""
for ch in text:
if ch != "!":
result += ch
return result
# або так можна через replace
def remove_exclamation(text):
return text.replace("!", "")