背景:小规模纳税人的条件是连续12个月的销售额之和不超过500万。这个实际问题简化为程序问题,就是:求数组中连续多个数据满足某个条件。比如求xsqk = [1,2,3,4,3,1,1.05] 这个数组中连续4个数之和大于10的数。
xsqk = [1,2,3,4,3,1,1.05]
result = []
for i in range(0,len(xsqk)-4+1):
tmp = xsqk[i:i+4]
if sum(tmp)>=10:
result.append(i+4-1)
else:
pass
print(result)
sum_4 = []
for k,_ in enumerate(xsqk):
if k<4:
tmp = sum(xsqk[0:k+1])
else:
tmp = sum(xsqk[k-3:k+1])
sum_4.append(tmp)
print(sum_4)
>>>
[3, 4, 5]
[1, 3, 6, 10, 12, 11, 9.05]
前面一个数组返回满足条件的下标,后面一个数组是连续前四个数之和(不足四个数的取到数组开始)。
总结:其实很多的实际问题都可以简化成数学问题,并用编程加以实现。但是有时这个简化的过程并不是那么的直观,需要一定的抽象能力。