Найти - Пользователи
Полная версия: True и False[решено]
Начало » Python для новичков » True и False[решено]
1
Liberty
Поиск по словарю выдаёт:
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, но тогда слово, имеющееся в словаре, игнорируется.
FishHook
А так?

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

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

sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = "word"
print sl.get(key) or 'Key word not found'
Liberty
Ясно ) Да, ваш вариант гораздо лучше.
d1ffuz0r
или вообще так :)
sl={'word': 'мир', 'earth':'земля', 'you': 'ты'}
key = "word"
print sl.get(key, 'Key word not found')
py.user.next
Liberty
if key in sl != True:
if key not in sl:
sp3
True, False = False, True
odnochlen
sp3
True, False = False, True
Питонкапец++. Точнее двойкокапец++
py.user.next
>>> True = 1
  File "<stdin>", line 1
SyntaxError: assignment to keyword
>>>
в третьем нормально всё
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB