Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2010 18:00:35

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Помогите исправить

Zubchick
c=getch() # Ожидается ввод
If c == 'a':
index = 0
elif c == 'b':
index == 1
elif c == 'c':
index == 2

print list_1[index].title()
Насчет несрабатывания с другими буквами:
При вводе ‘других букв’ получаем это: NameError: name ‘index’ is not defined



Офлайн

#2 Март 1, 2010 22:06:04

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите исправить

я имел ввиду, если бы были буквы ‘a’, ‘r’, ‘z’ такой хитрый хак не прокатил бы :)



Офлайн

#3 Март 1, 2010 22:44:22

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Помогите исправить

Ну да. В случае с ‘a’, ‘r’, ‘z’ я бы использовал find. все короче, чем 3 if-а писать.



Офлайн

#4 Март 1, 2010 22:51:12

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите исправить

Ну да. В случае с 'a', 'r', 'z' я бы использовал find. все короче, чем 3 if-а писать.
ну до find я не додумался, конечно, но это будет явно более правильный способ. а с ord - это грязный хак :)



Офлайн

#5 Март 1, 2010 23:01:16

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

Помогите исправить

нах find, нах ord, dict - спасение

foo = {'a': 0, 'b': 1, 'c': 2}
c=getch() # Ожидается ввод
index = foo[c]

print list_1[index].title()



Офлайн

#6 Март 1, 2010 23:03:39

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите исправить

>> нах find, нах ord, dict - спасение
во - самый правильный способ, а я все думал, чего не так :)



Отредактировано (Март 1, 2010 23:04:05)

Офлайн

#7 Март 1, 2010 23:09:28

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Помогите исправить

Фи, dict - это не модно. Слишком много букв.
Вот аналог вашего кода с find:
print list_1.title()

Кстати, код будет выдавать последний элемент list_1 при вводе чего-нибудь отличного от ‘abc’.
Ваш будет ломаться. А мой с ord таки нет :)



Отредактировано (Март 1, 2010 23:11:43)

Офлайн

#8 Март 3, 2010 17:24:51

sumrak_ss
От:
Зарегистрирован: 2009-11-21
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите исправить

Всем огромное спасибо за помощь! Пример кода нагляднее любых объяснений.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version