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
为什么会这样呢?
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
因为Python中相当于您的Julia语句的等效语句是:
N=123456789
print( sum(map(ord,str(N))))
输出:
477
它在对'1'+'2'+...'9'的ASCII码值求和,而不是将字符串中的每个字符转换为int
再求和ints
。
这两者不同:
N=123456789
sum(map(int,str(N))
它将长整数转换为字符串,将每个字符提供给int()
函数,该函数将'1'
转换回1
(而不是ord('1')
),然后将数字加到45
sum(digits(N))
是 Julia 代码中与 Python 代码相对应的部分。 - niczky12