Python和Julia以不同的方式计算函数?

Lij*_*eph 4 python python-3.x julia

Python 3的计算

N=123456789
sum(map(int,str(N))            ---> 45
Run Code Online (Sandbox Code Playgroud)

朱莉娅0.6.2计算

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

N = 123456789
sum(map(Int, collect("$N")))  --->  477
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

Pat*_*ner 10

因为python等同于你的Julia-Statement

N=123456789
print( sum(map(ord,str(N))))
Run Code Online (Sandbox Code Playgroud)

输出:

477
Run Code Online (Sandbox Code Playgroud)

它总结了'1'+'2'+ ...'9'的ascii-ord-value - 没有将字符串的每个字符转换为a int然后总结ints.

这不一样:

N=123456789
sum(map(int,str(N))
Run Code Online (Sandbox Code Playgroud)

它将long int转换为一个字符串,将每个charachter转换int()为转换'1'1(而不是ord('1'))的字符串然后将数字添加到45

  • 而`sum(digits(N))`将是Python代码的Julia等价物. (3认同)