一个交易号的生成和还原过程需求是一个同学给的,我帮他做完,记录下。 需求如下:
1、 设置系统参数是否打乱交易序号ConfuseTranNumber =yes; 2、 如果需要打乱,用程序把原交易序号打乱存放到内存变量A中,如果不需要打乱则把正确的交易序号存放到内存变量A里; 3、 打印时读取交易序号A; 4、 退货时,输入打乱后的交易序号用算法计算出正常的交易序号,把正常的交易序号内容取到界面上进行退货; 5、 算法解析: 销售时正算交易序号: 把传过来的交易序号打乱,如果交易序号长度不足8位前面用"0"补足,各位上之和与10求余,余数则有可能是0、1、2、3、4、5、6、7、8、9,针对不同的余数各位上有不同的排列方式:56204173、20417365、41736520、73652041、65412073、20736541、65204173、20417365、41736520、73652041 例如:交易序号为12345678,各位之和为36,和10求余为6,此时选择第六种打乱方式65204173,打乱后的交易序号为76315284。 退货时倒算交易序号: 把输入打乱后的退货交易序号,如果交易序号长度不足8位前面用"0"补足,各位上之和与10求余,余数则有可能是0、1、2、3、4、5、6、7、8、9,针对不同的余数各位上有不同的打乱方式:35274016、13052764、71630542、57416320、53472106、17036542、35274106、13052764、71630542、57416320 例如:退货交易序号为76315284,各位之和为36,和10求余为6,此时选择第六种打乱方式35274106,正常的交易序号为12345678。
直接上代码,注释一切都有:
![]()
另外用到几个函数: strip( [chars])
lstrip( [chars]) rstrip( [chars])
rjust( width[, fillchar])
|
|
来自: 昵称QAb6ICvc > 《python》