@Sk1lizz
Ничего

Не вижу ошибку в коде?

Помогите, пожалуйста!
Ищу ошибку целый день!
Не могу найти! Я начинающий в Python!
def calculator():
    num = int(input('Скольчи чисел нужно? 3 max.'))
    if num == 2:
        do = input('Что делаем? (+, -, /, *)')
        if do == '+':
            firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
            secondnum = float(input('Второе число: '))
            numex = firstnum + secondnum
            print('Получится ' + str(numex))
        elif do == '-':
            firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
            secondnum = float(input('Второе число: '))
            numex = firstnum - secondnum
            print('Получится ' + str(numex))
        elif do == '/':
            def cull1():
                do1 = input('Остовляем только целую часть? Да/Нет ')
                if do1 == 'Да' or do1 == 'да':
                    firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                    secondnum = float(input('Второе число: '))
                    numex = firstnum // secondnum
                    print('Получится ' + str(numex))
                elif do1 == 'Нет' or do1 == 'нет':
                    firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                    secondnum = float(input('Второе число: '))
                    numex = firstnum / secondnum
                    print('Получится ' + str(numex))
                else:
                    print('Выбрано неверное действие!')
                    cull1()
            cull1()
        elif do == '*':
            firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
            secondnum = float(input('Второе число: '))
            numex = firstnum * secondnum
            print('Получится ' + str(numex))
    elif num == 3:
        do = input('Что делаем? (+, -, /, *)')
        if do == '+':
            do1 = input('Что делаем? + +; + -; + /; + *: ')
            def cullPl():
                if do1 == '+ +' or do1 == '++':
                    firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                    secondnum = float(input('Второе число: '))
                    thirdnum = float(input('Третье число: '))
                    numex = firstnum + secondnum + thirdnum
                    print('Получится ' + str(numex))
                elif do1 == '+ -' or do1 == '+-':
                    firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                    secondnum = float(input('Второе число: '))
                    thirdnum = float(input('Третье число, которое будем вычитать: '))
                    numex = firstnum + secondnum - thirdnum
                    print('Получится ' + str(numex))
                elif do1 == '+ /' or do1 == '+/':                   
                    def cullPlDi():
                        do2 = input('Оставить только целую часть? Да/Нет ')
                        if do2 == 'Да' or do2 == 'да':
                            firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                            secondnum = float(input('Второе число: '))
                            thirdnum = float(input('Третье число, на которое будем делить сумму 1 и 2 числа: '))
                            numex1 = firstnum + secondnum
                            numex = numex1 // thirdnum
                            print('Получится ' + str(numex))
                        elif do2 == 'Нет' or do2 == 'нет':
                            firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                            secondnum = float(input('Второе число: '))
                            thirdnum = float(input('Третье число, на которое будем делить сумму 1 и 2 числа: '))
                            numex1 = firstnum + secondnum
                            numex = numex1 / thirdnum
                            print('Получится ' + str(numex))
                        else:
                            print('Не правильные данные!')
                            cullPlDi()
                def cullPlDi2():
                    cullPlDi() 
                cullPlDi()  
                elif do1 == '+ *' or do1 == '+*':
                    firstnum = float(input('Первое число [ Можно не целое! Пример: 5.2]: '))
                    secondnum = float(input('Второе число: '))
                    thirdnum = float(input('Третье число, на которое нужно умножить сумму 1 и 2 числа: '))
                    numex1 = firstnum + secondnum
                    numex = numex1 * thirdnum
                    print('Получится ' + str(numex))
            cullPl()

            
calculator()


Выдаёт ошибку:
Traceback (most recent call last):
  File "G:\Py\cull.py", line 83, in <module>
    calculator()
  File "G:\Py\cull.py", line 78, in calculator
    cullPl()
  File "G:\Py\cull.py", line 77, in cullPl
    cullPlDi()
UnboundLocalError: local variable 'cullPlDi' referenced before assignment
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Отступы в Python важны, они формируют блоки кода и соответственно области видимости.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект