直接上代码,环境ARCMAP10.8.2 jishu = 0 fname = "" def autoIncrement(a, b, c): #采用最大余数法; a为BSM,b为面积百分比整数部分,c为通过频数整数部分求和与100的差值。此代码排除了差值为负数的情况并且在此之前需要根据BSM与小数部分进行排序。 global jishu global fname global rec if a != fname and c > 0: fname = a pStart = 1 jishu = pStart rec = pStart + b return rec elif a != fname and c == 0: fname = a pStart = 1 jishu = pStart rec = b return rec elif a == fname and c == 0: fname = a pStart = 1 jishu = jishu + pStart rec = b return rec else: fname = a pStart = 1 jishu = jishu + pStart if jishu > c: rec = b return rec else: rec = pStart + b return rec