Функция — это алгоритм, составленный на языке программирования и имеющий уникальное имя.
В уроке мы узнаем:
Функция: это именованный набор команд программы, который может быть вызван из другой части программы.
Формальное определение и устройство функции:
значение = имя_функции(аргумент1, аргумент2, …)
Некоторые особенности:
Функция не возвращает значение в явном виде:
имя_функции(аргумент)
print(print('Hello!'))
>> Hello!
>> None
print() печатает результат работы print(), который не определён.
Функция возвращает значение:
результат = имя_функции(аргумент)
print(len('poiuytr'))
>> 7
print() печатает результат работы len() — целое число.
Процесс создания функции называется объявлением функции.
Чтобы объявить функцию, нужно:
Обратите внимание!
При объявлении функции перечисляются переменные-параметры. Значения присваиваются им позже в момент вызова функции.
При вызове функции в неё передаются аргументы, т. е. конкретные значения (даже если они скрываются за переменными).
Функция для приветствия пользователя:
def hello(user_name): # пример функции
print('Здравствуйте, ' + user_name +'!')
name = input('Введите имя:')
hello(name) # аргумент, передаваемый в функцию
Задача №1. Написать программу для печати фирменных этикеток центра для тетрадей учеников. В этикетке должны быть название центра и поля «Имя», «Курс», «Группа». Запросите ввод числа этикеток и напечатайте их, как на картинке.
def print_label(name):
print('ЦЕНТР УСПЕХ')
print('Имя: ____')
print('Курс: ____')
print('Группа: ______')
print('Автомат для печати этикеток')
amount = int(input('Число учеников:'))
for i in range(amount):
name = input('Имя ученика:')
print_label(name)
print('Готово! Заберите этикетки.')
Задача №2. Напишите программу, считающую средний балл ученика. Программа должна запрашивать ввод имени ученика и его оценок и печатать посчитанный средний балл в формате: «<Имя> — средний балл — <Балл>».
def average_grade(name):
grade = input('Оценка (off-остановить ввод):')
summa = 0
total = 0
while grade != 'off':
summa += int(grade)
total += 1
grade = input('Оценка (off-остановить ввод):')
print(name, '- средний балл -', summa/total)
amount = int(input('Число учеников:'))
for i in range(amount):
name = input('Имя ученика:')
average_grade(name)
Вопросы для самопроверки:
Интерпретатор Python связывает переменную с местом, в котором она используется.
Объявленные программистом функцииявляютсясамостоятельными блоками программы ссобственными переменными.
>> name 'average' in not defined # означает что переменная average не найдена
Оператор return
Чтобы получить (вернуть) из функции значение, нужно использовать оператор return.
Это значение можно присвоить переменной в основной части программы.
Задача. В центре проводилась олимпиада по географии.
Напишите функцию, запрашивающую имя ученика и балл и возвращающую строку: «Ученик(-ца) <имя> — <награда>».
def get_result(score):
if score >= 50 and score < 100:
result = 'диплом III степени'
elif score >= 100 and score < 200:
result = 'диплом II степени'
elif score >= 200:
result = 'диплом I степени'
else:
result = 'благодарственное письмо'
return result
name = input('Имя ученика:')
score = int(input('Набранный балл:'))
result = get_result(score)
print(name, '-', result)
if result == 'диплом I степени':
print('Подарок — сертификат в книжный магазин')
Попробуй ответить на вопросы самостоятельно: