Форум сайта python.su
0
TypeError: object of type ‘int’ has no len()
Прикреплённый файлы:
Калькулятор.py (5,4 KБ)
Офлайн
0
Значит именно то, что написано.
Нельзя применить функцию len к числу.
у вас там есть такой код -
in_expr0=0 #1 input(in_expr0) #2 out_expr0=convert_ItP(in_expr0) #3
in_expr0 = raw_input("Write expression")
Офлайн
0
hedint, аргумент функции convert_ItP(выражение) - строка, но результат - список (т.к. элементы строк не изменяемые, да и со списком удобнее работать при вычислении выражения, т.к. список может содержать произвольные данные, а строка - только символы). Так что я баг пофиксил, лишние строки удалил.
Спасибо за подсказку
Просто я до изучения языка python писал прграммы на паскале, и вот привык, что функция input передаёт значение переменной, а не выводит приглашение на ввод. Теперь буду знать.
Однако ошибка с переполнением стёка (списка) возникают 
File “C:\Python32\Мои программы\Калькулятор.py”, line 83, in <module>
in_expr0_a=convert_ItP(in_expr0)
File “C:\Python32\Мои программы\Калькулятор.py”, line 37, in convert_ItP
while priorite(stack)<=priorite(stack):
IndexError: list index out of range
Отредактировано DOSfag (Июнь 3, 2012 16:33:06)
Прикреплённый файлы:
Калькулятор.py (5,4 KБ)
Офлайн
0
Вот в чём и недостаток питона… В том, что индекс идёт с нуля, и возникают проблемы с переполнением.
Офлайн
0
Traceback (most recent call last):
File “C:\Python32\Мои программы\Калькулятор.py”, line 85, in <module>
out_expr0=calculate(in_expr0_a)
File “C:\Python32\Мои программы\Калькулятор.py”, line 61, in calculate
while len(converted_expresssion)>1:
NameError: global name ‘converted_expresssion’ is not defined
Отредактировано DOSfag (Июнь 3, 2012 17:04:14)
Офлайн
0
Баг с переполнением стёка пофиксил
Офлайн
52
DOSfagНадо запомнить.
Вот в чём и недостаток питона… В том, что индекс идёт с нуля, и возникают проблемы с переполнением.
Офлайн
568
DOSfagЗато в Бэйсике этого недостатка нет!
Вот в чём и недостаток питона… В том, что индекс идёт с нуля, и возникают проблемы с переполнением.
Офлайн
221
DOSfagНадеюсь это была жесткая шутка.
Вот в чём и недостаток питона… В том, что индекс идёт с нуля
FishHookЕще матлаб в какой то мере можно приписать, хоть и не полноценный ЯП, но близко.
А не, в остальных везде тот же недостаток.
Офлайн
13
В lua вроде бы тоже.
PS: Оказалось немало, но в основном старье типа старого Fortranа, SmallTalkа, старых Basicов, Cobolа, Algol, Eiffelа и т.д.
Многие языки баз данных типа PL/SQL, FoxPro, Dbase, PostgreSQL и т.д.
В паскалях, модулах, обероне, аде по-моему можно задавать индексы.
Отредактировано Ed (Июнь 4, 2012 11:39:15)
Офлайн