2017-05-07 216 views
-4

对于例如我有两个数字:4532和5489.我想计算4532的第一个数字是4和5489的所有数字之间的最小差异,即4-5,4-4,4-8和4-9 。我该怎么做?如何比较两个数字的数字之间的差异?

num = "4532" 
num2 = "5489" 
for j in num2: 
    if int(i)-int(j)<int(i)-int(j+1): 
     print(int(i)-int(j)) #I am getting list index out of bound exception 
+1

那么预期产出是多少? '4 - '的'0'? –

+0

SO不是代码写入服务。你试过什么了? –

+0

当你只想计算num的第一个数字和num2的数字之间的差别时,为什么你要重复num?这个问题还不清楚。 – timgeb

回答

0

这不是一个很好的代码,但它的工作。你可以调整它到你想要的。
请记住,如果你有两个数字同样的结果,你会不知道,(你会留下谁第一个匹配的,在这种情况下)

在那个例子中,你会得到的数字那会给你最小的差别。您可以改变它来保存结果。

num1 = 4532 
num2 = 5489 
ln2 = len(str(num2)) 
firstDigit = int(str(num1)[0]) 
lowest = None 
temp = num2 

for i in range(ln2): 
    last = temp % 10 
    temp //= 10 
    diff = abs(firstDigit - last) 

    if lowest is None or diff < abs(lowest - firstDigit): 
     lowest = last 

print(lowest) 
相关问题