Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2011 14:09:40

guestonearth
От:
Зарегистрирован: 2011-01-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

Всем доброго времени суток
Питоном занимаюсь 3-й день, так что не судите строго =)

дык вот, на

  if command[0] == "open":
open_file(command)
он ругается тем что указано в заголовке

интересно также то что на некоторые подобные конструкции он тоже ругается, а на некоторые нет

в принципе понятно, что я что-то намутил с отступами, но непонятно что именно

def executor(command):
if command[0] not in define_commands:
print("wrong command")
return -1
try:
if command[0] == "open":
open_file(command)
elif command[0] == "close":
close_file(command)
elif command[0] == "insert":
insert_strings(command)
elif command[0] == "replase":
replase_pattern(command)
elif command[0] == "show":
show(command)
elif command[0] == "show_a":
show_a(command)
elif command[0] == "save":
save_file(command)
elif command[0] == "help":
p_help()
except WrongLen:
print("wrong parameters of", command[0])
и еще - если посоветуете как можно оптимизировать подобный код - буду очень благодарен



Отредактировано (Янв. 17, 2011 14:12:52)

Офлайн

#2 Янв. 17, 2011 14:16:08

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

guestonearth, у вас в первой строчке 2 пробела, во второй 5. Используйте редактор, который сам нормально ставит отступы.
По поводу второго вопроса, можно как то так:

commands={'help':function1,'save':function2}

def execute(command):

try:commands[command[0]](command)
except KeyError:print 'Нету такой команды, нацяльника!'



Офлайн

#3 Янв. 17, 2011 15:27:27

guestonearth
От:
Зарегистрирован: 2011-01-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

так, с отступами понял, настроил kate, всё работает
правда, вложенность отображает через задницу, а так ничего, даже syntax highlight нормальный

спасибо большое за второе, но я пока не все коллекции нормально знаю, дойду - разберусь



Офлайн

#4 Янв. 17, 2011 16:58:31

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

Чуть подправил свой пример выше, теперь больше подходит для ваших условий.
Вам остается написать функции типа:

def function1(command):
print command
и не забывайте, что функции нужно объявлять до того, как вы их укажите в словаре commands :)



Офлайн

#5 Янв. 18, 2011 11:42:05

guestonearth
От:
Зарегистрирован: 2011-01-17
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

http://ideone.com/lhjO1

теоретически это должен быть оооочень простой текстовый редактор
не могли бы вы указать на какие-нить не python-way куски кода и тру методы решения для них?

з.ы. писалось после изучения С =)



Офлайн

#6 Янв. 18, 2011 13:05:36

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#7 Янв. 20, 2011 02:32:26

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

inconsistent use of tabs and spaces in indentation

оффтоп: совет: работайте в Eclipse. =)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version