Глава 3.1: Функции
0/0
hello_world(), которая выводит текст "Hello, Python!" и вызовите её один раз
def для определения и () для вызова
def hello_world(): print("Hello, Python!") hello_world()
greet_qa(), которая выводит "Добро пожаловать в мир тестирования!" и вызовите её два раза подряд
def greet_qa(): print("Добро пожаловать в мир тестирования!") greet_qa() greet_qa()
test_info(), которая выводит три строки: "Тест начат", "Тест выполняется", "Тест завершен". Вызовите функцию
def test_info(): print("Тест начат") print("Тест выполняется") print("Тест завершен") test_info()
get_version(), которая возвращает строку "v1.0.0". Вызовите функцию и выведите результат
return вместо print внутри функции
def get_version(): return "v1.0.0" version = get_version() print(version)
calculate_tests(), которая внутри себя вычисляет 5 * 3 и возвращает результат. Сохраните результат в переменную и выведите
return может возвращать результат выражения
def calculate_tests(): return 5 * 3 total_tests = calculate_tests() print(total_tests)
get_timeout(), которая возвращает число 30 (таймаут в секундах). Используйте результат в выражении: умножьте его на 2 и выведите
def get_timeout(): return 30 double_timeout = get_timeout() * 2 print(double_timeout)
show_status() с print("OK") и get_status() с return "OK". Вызовите обе и попробуйте сохранить их результаты в переменные result1 и result2. Выведите обе переменные
None
def show_status(): print("OK") def get_status(): return "OK" result1 = show_status() # Выведет OK, но вернет None result2 = get_status() # Ничего не выведет, но вернет "OK" print(result1) # None print(result2) # OK
get_base_price(), которая возвращает 100. Создайте функцию calculate_tax(), которая возвращает результат get_base_price() * 0.2. Выведите результат calculate_tax()
def get_base_price(): return 100 def calculate_tax(): return get_base_price() * 0.2 tax = calculate_tax() print(tax) # 20.0
get_test_data(), которая возвращает три значения: "admin", "pass123", True. Получите все три значения в отдельные переменные и выведите их
return может возвращать несколько значений через запятую
def get_test_data(): return "admin", "pass123", True username, password, is_active = get_test_data() print(username) # admin print(password) # pass123 print(is_active) # True
test_count = 0. Создайте функцию run_test(), которая создает локальную переменную test_count = 5 и выводит её. Вызовите функцию и после вызова выведите глобальную test_count
test_count = 0 def run_test(): test_count = 5 # Локальная переменная print(f"Внутри функции: {test_count}") run_test() print(f"Вне функции: {test_count}")
app_name = "TestApp". Создайте функцию show_info(), которая выводит "Приложение: " + app_name. Вызовите функцию
app_name = "TestApp" def show_info(): print("Приложение: " + app_name) show_info()
check_password(), которая получает пароль через input(). Если пароль пустой (""), верните "Ошибка: пароль не может быть пустым". Если пароль равен "secret123", верните "Доступ разрешен". Иначе верните "Доступ запрещен". Протестируйте функцию три раза с разными вводами
return для пустого пароля
def check_password(): password = input("Введите пароль: ") if password == "": return "Ошибка: пароль не может быть пустым" if password == "secret123": return "Доступ разрешен" return "Доступ запрещен" # Вызовите функцию 3 раза и вводите: "", "secret123", "wrong" print(check_password()) print(check_password()) print(check_password())
validate_age(), которая запрашивает возраст через input(). Если возраст меньше 0, верните "Некорректный возраст". Если от 0 до 17, верните "Несовершеннолетний". Если 18 и больше, верните "Совершеннолетний"
input() в int() и используйте несколько условий
def validate_age(): age = int(input("Введите возраст: ")) if age < 0: return "Некорректный возраст" if age < 18: return "Несовершеннолетний" return "Совершеннолетний" status = validate_age() print(status)
is_valid_login() возвращает True если логин "admin", is_valid_password() возвращает True если пароль "12345", check_access() возвращает "Доступ разрешен" если обе проверки True, иначе "Доступ запрещен". Проверьте систему
def is_valid_login(): login = input("Логин: ") return login == "admin" def is_valid_password(): password = input("Пароль: ") return password == "12345" def check_access(): if is_valid_login() and is_valid_password(): return "Доступ разрешен" return "Доступ запрещен" result = check_access() print(result)
get_test_stats(), которая возвращает кортеж (10, 2, 1) - passed, failed, skipped. Создайте функцию calculate_total(), которая вызывает get_test_stats() и возвращает общее количество тестов. Создайте функцию show_report(), которая выводит "Всего тестов: X" используя calculate_total()
def get_test_stats(): return 10, 2, 1 # passed, failed, skipped def calculate_total(): passed, failed, skipped = get_test_stats() return passed + failed + skipped def show_report(): total = calculate_total() print(f"Всего тестов: {total}") show_report()
current_state = "idle". Создайте функции: start_test() выводит "Тест запущен" и возвращает "running", finish_test() выводит "Тест завершен" и возвращает "completed", get_state() возвращает текущее значение current_state. Вызовите start_test(), сохраните результат, выведите его
current_state = "idle" def start_test(): print("Тест запущен") return "running" def finish_test(): print("Тест завершен") return "completed" def get_state(): return current_state new_state = start_test() print(f"Новое состояние: {new_state}") print(f"Глобальное состояние: {get_state()}")
maybe_return(), которая выводит "Функция работает" но не имеет return. Сохраните результат в переменную и проверьте, равен ли он None
return возвращает None
def maybe_return(): print("Функция работает") # Нет return result = maybe_return() print(result) # None print(result is None) # True
test_return() с кодом: print("До return"), return "Результат", print("После return"). Вызовите функцию и объясните, почему второй print не выполнился
return немедленно завершает функцию
def test_return(): print("До return") return "Результат" print("После return") # Этот код никогда не выполнится result = test_return() print(f"Функция вернула: {result}") # Второй print не выполнился, потому что return завершает функцию
calculate_discount(), которая всегда возвращает 15 (процент скидки). Создайте "нечистую" функцию get_random_discount(), которая запрашивает скидку через input() и возвращает её. Вызовите обе функции дважды и сравните поведение
def calculate_discount(): return 15 # Всегда одинаковый результат def get_random_discount(): discount = int(input("Введите скидку: ")) return discount # Зависит от ввода # Чистая функция print(calculate_discount()) # Всегда 15 print(calculate_discount()) # Всегда 15 # Нечистая функция print(get_random_discount()) # Зависит от ввода print(get_random_discount()) # Может быть другой
def имя_функции():имя_функции()print() - только показывает на экранreturn - возвращает значение для использованияreturn a, b, cfunction вместо function()