#python #python-3.x
#python #python-3.x
Вопрос:
В следующем блоке кода:
dictionary = dict()
dictionary[0] = {}
try:
print(dictionary[0]["tomato"])
except Exception as e:
print(e) # prints 'tomato'
print(str(e)) # prints 'tomato'
if str(e) == 'tomato':
print("Not tomato") # never prints, why?
Несмотря print(e)
на то, что печатает 'tomato'
, str(e) == 'tomato'
не True
Может кто-нибудь, пожалуйста, объяснить, как это может быть?
Комментарии:
1.
if str(e) == "'tomato'":
— вокруг есть кавычки'tomato'
, которые являются частью строки.2. Вы получаете KeyError, поэтому print(e) включает кавычки вокруг tomato, поскольку
'tomato'
это недостающий ключ.
Ответ №1:
Эти первые два оператора печати печатают, 'tomato'
включая одинарные кавычки, так что это означает, что кавычки буквально являются частью строки.
Измените свой оператор if на это:
if str(e) == "'tomato'":
Комментарии:
1. Пытаясь ответить на мой вопрос, я понял, что str(e)==repr(‘tomato’) также будет работать