Вложенные функции в Python

Для сокращения кода можно при вызове вкладывать функции друг в друга.

Пусть у нас есть функции для возведения числа в квадрат, в куб и для суммирования двух чисел:

pythondef square(num):
  return num ** 2
  
def cube(num):
  return num ** 3
  
def add(num1, num2):
  return num1 + num2

Чтобы получить сумму квадрата и куба числа, мы можем вложить их в параметр функции add при ее вызове:

pythonres = add(square(2), cube(4))
print(res) # выведет 68

Кроме того, можно вызывать функции и в теле другой функции. Давайте перепишем предыдущий пример и вызовем функции внутри add:

pythondef add(num1, num2):
  return square(num1) + cube(num2)
  
res = add(2, 4)
print(res) # выведет 68
Задание 1

Сделайте функцию, которая будет возводить число в квадрат и функцию для получения куба числа. Также с их помощью создайте функцию, чтобы вывести на экран куб квадрата числа.

Задание 2

Сделайте функцию, которая будет проверять тип переменной и если переменная является строкой, то выведет ее с заглавной буквы. Также создайте функцию, которая будет приветствовать пользователя по имени. Вложите в нее первую функцию так, чтобы имя всегда выводилось с заглавной буквы.