Python · Синтаксис · Начальный уровень
Функции
Базовые упражнения по функциям в Python: создание функций, параметры, return, проверки чисел и строк, работа со списками, кортежами и простыми вычислениями.
Краткое введение в тему и пояснения перед упражнениями (упражнения ниже):
def, параметры и return
#Три паттерна функций
#Быстрый справочник: функции
#Упражнения:
Квадрат числа функцией.
#Напишите функцию, которая принимает одно число и возвращает его квадрат.
def square(n):
pass
result = square(5)
print(result)
result = square(2)
print(result)
result = square(25)
print(result)
Решение
def square(n):
return n * n
result = square(5)
print(result)
result = square(2)
print(result)
result = square(25)
print(result)
# или
def square(n):
result = n * n
return result
# или
def square(n):
result = n ** 2
return result
# или
def square(n):
return n ** 2
Большее число функцией.
#Напишите функцию, которая принимает два числа и возвращает большее из них. Если они равны, то возвращает второе.
def max_of_two(a, b):
pass
print(max_of_two(10, 7))
Решение
def max_of_two(a, b):
if a > b:
return a
else:
return b
print(max_of_two(10, 7))
# ИЛИ внимательно можно и так, else не нужен фактически,
# так как return завершает работу функции если он сработал в условии или вообще:
def max_of_two(a, b):
if a > b:
return a
return b
print(max_of_two(10, 7))
# или так можно: сначала проверить равенство
def bigger(a, b):
if a == b:
return a
if a > b:
return a
return b
Длина строки без len.
#Напишите функцию, которая принимает строку и возвращает её длину (якобы нет функции len).
def string_length(text):
pass
print(string_length("python"))
Решение
def string_length(text):
count = 0
for _ in text:
count += 1
return count
print(string_length("python"))
# или можно назвать счётчик более явно
def get_length(text):
count = 0
for char in text:
count += 1
return count
Чётность через функцию.
#Напишите функцию, которая принимает число и возвращает True , если число чётное, иначе False .
def is_even(n):
pass
print(is_even(8))
Решение
def is_even(n):
if n % 2 == 0:
return True
else:
return False
print(is_even(8))
# ИЛИ
def is_even(n):
if n % 2 == 0:
return True
return False
# ИЛИ
def is_even(n):
return n % 2 == 0 # сразу вернем результат от сравнения.
# или так можно через переменную
def is_even(n):
result = n % 2 == 0
return result
Сумма двух чисел функцией.
#Напишите функцию, которая принимает два числа и возвращает их сумму.
def add(a, b):
pass
print(add(3, 4))
Решение
def add(a, b):
return a + b
print(add(3, 4))
Строка в верхнем регистре.
#Напишите функцию, которая принимает строку и возвращает новую строку, символы в верхнем регистре.
def to_upper(text):
pass
print(to_upper("hello"))
Решение
def to_upper(text):
return text.upper()
print(to_upper("hello"))
# или так можно: результат сначала сохранить
def to_upper(text):
result = text.upper()
return result
Положительное число функцией.
#Напишите функцию, которая принимает число и возвращает True , если оно положительное, иначе False .
def is_positive(n):
pass
print(is_positive(-3))
Решение
def is_positive(n):
if n > 0:
return True
else:
return False
print(is_positive(-3))
# ИЛИ
def is_positive(n):
if n > 0:
return True
return False
# ИЛИ
def is_positive(n):
return n > 0
Возведение в степень.
#Напишите функцию, которая принимает два числа: основание и показатель степени — и возвращает результат возведения основания в степень.
def power(base, exp):
pass
print(power(2, 3))
Решение
def power(base, exp):
result = 1
for _ in range(exp):
result *= base
return result
print(power(2, 3))
# ИЛИ
def power(base, exp):
return base ** exp
Произведение чисел кортежа.
#Напишите функцию, которая принимает кортеж из чисел и возвращает их произведение.
def multiply(sequence):
pass
print(multiply((3, 4, 100, 15)))
Решение
def multiply(sequence):
result = 1
for n in sequence:
result *= n
return result
print(multiply((3, 4, 100, 15)))
# ИЛИ лучше
def multiply(sequence):
if len(sequence) == 0: # <--- прям хорошо
return 0
result = 1
for n in sequence:
result *= n
return result
Повтор строки функцией.
#Напишите функцию, которая принимает строку и число, и возвращает эту строку, повторённую указанное количество раз.
def repeat_text(text, count):
pass
print(repeat_text(")", 3))
Решение
def repeat_text(text, count):
result = ""
for _ in range(count): # не круто, ниже есть круто.
result += text
return result
print(repeat_text(")", 3))
# ИЛИ
def repeat_text(text, count):
return text * count