Python — очень гибкий язык, и он позволяет создавать функции практически в любом месте кода. Вы можете определить новую функцию внутри блока if, цикла for или внутри другой функции:
def process(name1, name2, name3):
def greet(name):
if len(name) < 5:
print(f'Hi, {name}')
else:
print('The name is too long')
greet(name1)
greet(name2)
greet(name3)
process('Anna', 'Bob', 'Daniel')
# Hi, Anna
# Hi, Bob
# The name is too long
Здесь мы определили новую функцию greet(), которая служит для того, чтобы не повторять операторы if и else для всех трех имен в функции process().
Обратите внимание, что вложенные функции имеют доступ ко всем переменным, определенным выше них. Поэтому в нашем примере функция greet() имеет доступ к name1, name2 и name3.
Задача
Измените функцию так, чтобы она возвращала список всех делителей переданных ей чисел. Добавьте вложенную функцию, которая возвращает список делителей для одного числа.