Почему переменная x и y не работают одинаково в фукции?

Сам код:

documents = [{"type": "age", "number": "10", "name": "ольга"}]

def get_ppl(num):
  for docs in documents:
    if num is docs["number"]:
      return docs["name"]

print("Введи 10")

x = input()
y = "10"
print(type(x), x)
print(type(y), y)
print(get_ppl(x))
print(get_ppl(y))

if x == y:
  print ("Почему не работает функция с переменной x?")

Результат:

Введи 10
10
<class 'str'> 10
<class 'str'> 10
None
ольга
Почему не работает функция с переменной x?

Почему в случае ввода 10 через input функция возвращает None?


Ответы (1 шт):

Автор решения: Stick Stickman

ошибка в данной строке:

if num == docs["number"]:
  • оператор == проверяет равенство значений двух объектов
  • оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти
→ Ссылка