Как разбить целое число 1000 di git на несколько строк в python - PullRequest
1 голос
/ 17 апреля 2020

Например, у меня есть целое число 100 di git, которое я хочу разбить на несколько строк для лучшего обзора.

x = 1000000000
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000
    0000000000

Я попытался разбить согласно pep8, но он показывает неверную синтаксическую ошибку.

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

Вы можете написать большие цифры, например:

x = 10**n (n - сила)

Другая форма (реагирующая на ваш комментарий):

x = 123 x = x * (10**3) + 456 (3 - это форма n)

0 голосов
/ 17 апреля 2020

Let:

x = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Вы можете разделить его и посмотреть:

for i in [str(x)[i:i+10] for i in range(0,len(str(x)),10)]:
    print(i)

Дает:

1000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000

Поскольку номера не могут быть подписаны, мы взять строку числа (x остается неизменным).
Чтобы сохранить вывод в виде строки (как представление x):

view_of_x = '\n'.join([str(x)[i:i+10] for i in range(0,len(str(x)),10)])

Теперь выведите его:

print(view_of_x)
0 голосов
/ 17 апреля 2020

Я не знаю, возможно ли это с целыми числами, но вы можете использовать /, чтобы сделать многострочное str представление числа, а затем преобразовать его в int, то есть

x = '100\
000\
000'
x = int(x)
print(x)  # 100000000
print(type(x))  # <class 'int'>

(проверено в Python 3.7.3)

Это, естественно, означает дополнительные операции, в отличие от явных x = 100000000, однако преобразование не должно быть проблемой, если ваша задача не выполняется сверхурочно критическое.

Что касается читабельности, обратите внимание, что если вы используете Python 3.6 или новее, вы можете использовать подчеркивания в литералах цифр c, как говорит PEP 515 . Говоря просто - вы можете поместить _ в литералы цифр c, если они не соседствуют с другим _ и не являются начальными и не завершающими символами, поэтому, например, все следующие строки имеют одинаковый эффект:

x = 1000
x = 1_000
x = 1_0_0_0

и т. Д.

...