Решение модуля 7.12 Инди-курс программирования на Python

Модуль 7.12 (Вложенные функции в Python). В python существует возможность определять функции внутри других функций или, другими словами, создавать вложенные функции.

Что выведет следующий код?
def outer() -> None:
    def say_hello() -> None:
        print('hello')

    def say_bye() -> None:
        print('bye')


say_hello()
say_bye()
Error
Что выведет следующий код?
def multiply_by_10():
    def f():
        x = 3

    print(x * 10)


multiply_by_10()
Error
Что выведет следующий код?
def color() -> None:
    g = 'green'

    def grey() -> None:
        nonlocal g
        g = 'grey'
        print(g)

    grey()
    print(g)


color()
grey, grey

Исправьте код с предыдущего задания так, чтобы на экран вывело bye и hello
Код с предыдущего задания:

def outer() -> None:
    def say_hello() -> None:
        print('hello')

    def say_bye() -> None:
        print('bye')
    say_bye()         # вызываем функцию которая печатает bye
    say_hello()       # вызываем функцию которая печатает hello
outer()               # вызываем функцию которая вызывает 2 другие

Пользуясь вложенными функциями, реализуйте простой калькулятор.
Необходимо реализовать функцию calculate , которая принимает три параметра:

  • обязательный числовой параметр x
  • обязательный числовой параметр y
  • необязательный строковый параметр operation,  по умолчанию принимает значение английской буквы a

В данной функции должны быть реализованы следующие функции:

  • addition — печатаем сложение двух чисел,
  • subtraction — печатаем вычитание из первого переданного параметра второго;
  • division — печатаем деление первого на второго,
  • multiplication — печатаем умножение двух чисел.

Каждая из этих четырёх вложенных функций должна распечатать результат математической операции и ничего не возвращать

А при помощи параметра operation и условного оператора нужно выбрать какая из функций должна быть вызвана:

  • если operation = a, вызываем функцию addition;
  • если operation = s, вызываем функции subtraction;
  • если operation = d, вызываем функции division;
  • если operation = m, вызываем функции multiplication;
calculate(2, 5) # Печатает 7.0
calculate(2.2, 15, 'a') # Печатает 17.2
calculate(22, 15, 's') # Печатает 7.0
calculate(2, 3.2, 'm') # Печатает 6.4
calculate(10, 0.4, 'd') # Печатает 25.0

Если operation принимает значение, отличное от перечисленных выше букв, то необходимо вывести на экран  сообщение Ошибка. Данной операции не существует.
Также если мы выполняем деление, то второе число (y) не должен равняться нулю, в противном случае необходимо вывести на экран: На ноль делить нельзя!

def calculate(x:float, y:float, operation:str='a') -> None:
    
    def addition():        # функция сложения
        print(x + y)
        
    def subtraction():     # функция вычитания
        print(x - y)
        
    def division():        # если ввели число 0, выводим сообщение об ошибке
        print('На ноль делить нельзя!' if y == 0 else x / y)
        
    def multiplication():  # функция умножения
        print(x * y)
        
    if operation == 'a':   # если в качестве операции вводим сложение, вызываем функцию сложения
        addition()
    elif operation == 's': # если в качестве операции вводим вычитание, вызываем функцию вычитания
        subtraction()
    elif operation == 'd': # если вводим число 0, вызываем функцию с сообщением об ошибке
        division()
    elif operation == 'm': # если в качестве операции вводим умножение, вызываем функцию умножения
        multiplication()
    else:                  # если ввели несуществующую операцию, выводим сообщение об ошибке
        
        print('Ошибка. Данной операции не существует')

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x