В Python целые числа автоматически переключаются с представления фиксированного размера на intпредставление ширины переменной, как longтолько вы передадите значение sys.maxint, которое равно 2 31 - 1 или 2 63 - 1 в зависимости от вашей платформы. Обратите внимание, что Lэто добавляется здесь:
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Из руководства Python :
Числа создаются числовыми литералами или как результат встроенных функций и операторов. Необжитые целочисленные литералы (включая двоичные, шестнадцатеричные и восьмеричные числа) дают простые целые числа, если только они не обозначают слишком большое значение, чтобы быть представлены как простое целое число, и в этом случае они дают длинное целое число. Целочисленные литералы с 'L'или 'l'суффикс дают длинные целые числа ( 'L'это предпочтительнее, потому что 1lвыглядит слишком много, как одиннадцать!).
Python очень сильно пытается притвориться, что его целые числа являются математическими целыми числами и неограничены. Он может, например, легко вычислить googol :
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L