Форум программистов, компьютерный форум CyberForum.ru

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
dencil
10 / 10 / 12
Регистрация: 23.09.2013
Сообщений: 145
#1

Объяснить ошибку - Python

02.11.2016, 22:37. Просмотров 316. Ответов 3
Метки нет (Все метки)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def Evaltree(tree):
        if(tree.getRoot() not in ['*','+','-','/']):
            return tree.getRoot()
        else:
            currentTree=tree
            stack=currentTree
            while(currentTree.left.getRoot() in ['*','+','-','/']):
                currentTree=currentTree.left
            a=currentTree.left.getRoot()
            b=currentTree.right.getRoot()
            if(b in ['*','+','-','/']):
                Evaltree(currentTree.right)
            a=int(a)+int(b)
            currentTree.setRoot(a)
            currentTree.left.setRoot(None)
            currentTree.right.setRoot(None)
            Evaltree(stack)
Объясните пожалуйста, почему в последней строке выдается ошибка "NameError: name 'Evaltree' is not defined", а на 12 строчку не ругается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2016, 22:37     Объяснить ошибку
Посмотрите здесь:

Нужно объяснить ошибку - C++
#include <iostream> using namespace std; int main() { int chess,c1,c2, a1,a2; char line; int...

Объяснить ошибку в программе 20wmr - Delphi
Здравствуйте, нужно исправить ошибку в программе, - Array type required - никак не разберусь, откуда она... готов заплатить 20 wmr -...

Кто может объяснить ошибку? - C#
нужно найти сумму элементов нечетных столбцов, вроде все так, но ищет четных..в упор не вижу ошибку using System; using...

Найти ошибку в коде и объяснить природу ее возникновения - Pascal ABC
Функцию находит нормально, после того как ввожу Z всплывает ошибка, посмотрите.Решите пожалуйста ошибку в программе и если сможете...

дана программа нужно найти и объяснить ошибку... - Turbo Pascal
case x of 0...9:write ('введена цифра'); 10...99:('введено двухзначное число'); end.

Исправить ошибку в приведенном коде и объяснить ее происхождение - Java SE
Ругается в этой строчке: Item one = iter.next(); import java.util.ArrayList; import java.util.Iterator; public class...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vrm2
241 / 148 / 32
Регистрация: 03.12.2015
Сообщений: 238
Завершенные тесты: 1
03.11.2016, 00:13     Объяснить ошибку #2
Что-то не воспроизводится ошибка. Есть пример вызова данной функции, которая приводит к ошибке?
dencil
10 / 10 / 12
Регистрация: 23.09.2013
Сообщений: 145
03.11.2016, 10:36  [ТС]     Объяснить ошибку #3
vrm2, вызываю из другого файла
Python
1
2
3
4
5
import BinaryTreeLib
 
BTL=BinaryTreeLib
t=BTL.BinaryTree.buildTree("( ( ( 1 + 2 ) + ( 3 + 4 ) ) + ( 5 + 6 ) )")
BTL.BinaryTree.Evaltree(t)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2016, 16:24     Объяснить ошибку
Еще ссылки по теме:

не мог бы кто нибудь объяснить ошибку с темплейтами - C++
Добрый день, (или вечер) не мог бы кто нибудь помочь разобраться с ошибкой с темплейтами в пространстве Warning567 объявлено...

С# исправить ошибку и объяснить алгоритм нахождения седловых точек - C#
Можете подправить косяки, и объяснить как найти номер всех седловых точек массива. ЗЫ матрица А имеет седловую точку Аij, если Аij является...

Отладить программу в VS 2012 (объяснить ошибку в примере из книжки) - C++
Помогите понять ошибку в примере из книжки. Код набираю на отладку в VS 2012 #include <iostream> int main() { std::cout<<...

по моему ошибка в типе, не знаю как нормально объяснить ошибку - Delphi
вот строка A := (Sqr(Xb - Xc) + Sqr(Yb - Yc)); A-тип real xb=65536 xc=20000 yb=0 yc=10000 четыре последних...

Включение заголовочного файла с классом, определяемым пользователем(объяснить ошибку в программе) - C++
Вот программа: #include<iostream> #include<string> using namespace std; class GradeBook { public: GradeBook(string name)...

Выдает ошибку при связи базы, можно конкретнее объяснить что это за ошибка? - PHP БД
Пытаюсь сделать связь и выборку данных из таблиц вот код: <!DOCTYPE HTML> <html> <head> <meta charset="windows-1251"> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vrm2
241 / 148 / 32
Регистрация: 03.12.2015
Сообщений: 238
Завершенные тесты: 1
03.11.2016, 16:24     Объяснить ошибку #4
Похоже, что Evaltree это метод в классе BinaryTree. Поэтому его надо пометить как @staticmethod и вызывать как BinaryTree.Evaltree(), а не просто как Evaltree()

Т.е. как-то так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@staticmethod # исправлено
def Evaltree(tree):
        if(tree.getRoot() not in ['*','+','-','/']):
            return tree.getRoot()
        else:
            currentTree=tree
            stack=currentTree
            while(currentTree.left.getRoot() in ['*','+','-','/']):
                currentTree=currentTree.left
            a=currentTree.left.getRoot()
            b=currentTree.right.getRoot()
            if(b in ['*','+','-','/']):
                BinaryTree.Evaltree(currentTree.right) # исправлено
            a=int(a)+int(b)
            currentTree.setRoot(a)
            currentTree.left.setRoot(None)
            currentTree.right.setRoot(None)
            BinaryTree.Evaltree(stack) # исправлено
Yandex
Объявления
03.11.2016, 16:24     Объяснить ошибку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru