Питон и Юля вычисляют функции по-разному? - PullRequest
0 голосов
/ 27 апреля 2018

Python 3 для вычисления

N=123456789
sum(map(int,str(N))            ---> 45

вычисление Julia 0.6.2 для

N = 123456789
sum([Int(ch) for ch in "$N"])  ---> 477

N = 123456789
sum(map(Int, collect("$N")))  --->  477

Почему это?

1 Ответ

0 голосов
/ 27 апреля 2018

Потому что эквивалент Python для вашего Julia-Statement будет

N=123456789
print( sum(map(ord,str(N))))

Выход:

477

Суммирует ascii-ord-значение '1' + '2' + ... '9' - не преобразовывая каждый символ строки в int, а затем суммируя ints.

Это не то же самое:

N=123456789
sum(map(int,str(N))

преобразует long int в строку, передает каждый символ в int(), который преобразует '1' обратно в 1 (не в ord('1')), а затем добавляет числа к 45

...