Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2012 06:55:21

Liberty
Зарегистрирован: 2012-10-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

True и False[решено]

Поиск по словарю выдаёт:

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
print('word' in sl)
True

Тем самым показывая, что искомое слово найдено. Но данный ниже пример работает “как нужно” только при противоположном значении.

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = input('Enter something : ')
if key in sl != True:
	print(sl[key])
else:
	print('Your word not found')

Почему так? Ведь должно быть if key in sl == True, но тогда слово, имеющееся в словаре, игнорируется.

Отредактировано Liberty (Окт. 29, 2012 08:20:30)

Офлайн

#2 Окт. 29, 2012 07:26:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

True и False[решено]

А так?

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = "word"
if (key in sl) != True:
    print sl[key]
else:
    print 'Your word not found'
Порядок операторов у тебя не тот

А вообще сравнение с True и False не нужно. Никогда.



Отредактировано FishHook (Окт. 29, 2012 07:28:08)

Офлайн

#3 Окт. 29, 2012 07:53:08

Liberty
Зарегистрирован: 2012-10-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

True и False[решено]

Так работает. Всё, спасибо, ошибка ясна.

FishHook
сравнение с True и False не нужно. Никогда.
А в чём опасность такого подхода? И как тогда реализовать данный пример?
if key in sl:
	print(sl[key])
else:
	print('Key word not found')
Так?

Офлайн

#4 Окт. 29, 2012 08:16:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

True и False[решено]

Liberty
А в чём опасность такого подхода?
Никакой опасности нет, кроме возможности наплодить жуткого говнокода
Liberty
Так?
Ну самому то как кажется, лучше так или как было?
Можно вообще вот так

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = "word"
print sl.get(key) or 'Key word not found'



Офлайн

#5 Окт. 29, 2012 08:19:47

Liberty
Зарегистрирован: 2012-10-10
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

True и False[решено]

Ясно ) Да, ваш вариант гораздо лучше.

Офлайн

#6 Окт. 29, 2012 21:26:08

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

True и False[решено]

или вообще так :)

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = "word"
print sl.get(key, 'Key word not found')

Офлайн

#7 Окт. 30, 2012 07:04:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

True и False[решено]

Liberty
if key in sl != True:
if key not in sl:



Офлайн

#8 Окт. 30, 2012 11:10:45

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

True и False[решено]

True, False = False, True



Офлайн

#9 Окт. 30, 2012 13:23:06

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

True и False[решено]

sp3
True, False = False, True
Питонкапец++. Точнее двойкокапец++

Отредактировано odnochlen (Окт. 30, 2012 13:23:48)

Офлайн

#10 Окт. 31, 2012 04:04:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

True и False[решено]

>>> True = 1
  File "<stdin>", line 1
SyntaxError: assignment to keyword
>>>
в третьем нормально всё



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version