Почему разные значения в операторе is в Python?
Предполагаю, что CPython при компиляции скрипта сохраняет литерал 1234 в соответствующую область памяти, а потом в переменные a и b записывает на него ссылку. В консоли же у него нет единицы компиляции, из которой можно выделить общие литералы.
Легко проверить же:
Скрипт выдает такое:
a = 1234
b = 1234

print(id(a))
print(id(b))
print(a is b)

# 2221342169168
# 2221342169168
# True
Как видим -  a и b ссылаются на тот же адрес памяти - python соптимизировал использование переменными памяти, поскольку в скрипте во время выполнения переменные не меняются.

В то же время в консоли создаются переменные в разных областях памяти:
>>> a = 1234
>>> id(a)
2715578112304
>>> b = 1234
>>> id(b)
2715578112432
>>>
>>> a is b
False
поскольку значение переменных больше 256 и заранее неизвестно как вы с переменными поступите дальше