hello,大家好,我是虞元坚律师。好久不写文章,今天给大家介绍Python法律实务的一个基础应用——司法计算器的制作。

司法计算是一门律师基本功,尤其对诉讼律师来说,更是经常遇到,例如诉讼费、律师费、利息、违约金的计算等等。网络上,有各种各样的司法计算器工具可以供大家直接使用,比如针对2020年利息计算的新规定,律师云助理小程序就给大家提供了非常详细的LPR计算器功能。可是呢,第三方的计算器有好有坏,有时候我们还有自己的个性化需求,比如,市场上习惯将利息计算的天数,计头不计尾,但是可能我们有的律师或者法务根据客户的需要,需要又算头又算尾,又或者有自己个性化的违约金公式。如果每次都靠自己手算或者摁计算机,未免耗时又枯燥。既然学习了Python,我们不如利用Python来制作自己的计算器。接下来,我就以LPR计算器为例子,给大家介绍通过Python来编写LPR计算器小软件。重要的不是学习LPR计算器的开发,重要的是希望大家通过这篇文章,举一反三,能够自己编写各式各样的个性计算工具。话不多说,我们进入正题。

知识点归纳

  • 列表与字典的嵌套数据结构
  • 日期与时间戳的转换
  • 列表的循环

第一步:整理业务逻辑

其实编程只是一种将想法程序化的过程,最重要的是业务逻辑的设计,如果这个业务逻辑没有理顺的话,可能后面就走不通了,考虑的时候要将可能的情形尽量考虑全面。其实也不难,这里直接把方案告诉大家,如果有错误,欢迎大家指正:

  • 开始日期在2019年8月20日之前的,以过去同期同档利息的计算方式来计算(本文不做介绍)。
  • 019年8月20日(含20日当日)后的,每个月20号(不一定准确是20号)LPR更新当后(含当日),就取最新的LPR值,未更新之前,取更新上一期的lpr值。
  • 我们需要存储所有的LPR档期,并根据我们需要的日期段(比如:2019-10-10 TO 2020-02-20),调取相关的LPR档期进行计算。

第二步:建立自己的LPR数据库或存储文件

LPR跟之前的同期同档利息有一个不同点,就是LPR的利息央行每个月20号左右会更新,因此,需要在每月的20号留意央行的信息,并将数值保存下来。保存的方案有很多种,笔者是通过爬虫技术采集后放在数据库中,在需要的时候调用。对初学者来说,还构建数据库难度相对较高,可以直接保存在py文件中保存,在需要的时候以文本方式打开调用,或者直接放在Python文件的变量中。以下我就直接将2019-08-20起到2020-02-20止的所有的lpr利息放在lpr_lib这个变量中使用。可以看出,这是一个列表嵌套字典的数据类型。

lpr_lib

上面的“timeStamp”就是日期的时间戳,所谓时间戳,就是从1970年01月01日00时00分00秒计算到现在的秒数或者毫秒数。这里有个知识点,就是日期与时间戳的转换,你可以选择百度时间戳转换工具直接转换,也可以直接使用python将格式化的日期转换成时间戳,函数略微麻烦,没必要硬记,知道怎么调用就行了:

import 

日期转换成时间戳的目的,主要是为了比较日期大小或计算日期间隔,数值越大,日期越后。

第三步:给需要使用的变量赋值,变量的命名尽量与实际的含义有关。

capital

为了表述方便,下面开始日期、截至日期等术语,我就直接以变量名如startDate、endDate来代替。

第四步:获取相关日期内相关的lpr利息档次

为了找到我们需要的LPR档期,我们需要考虑出现的可能情况,有时候我们在编程中可以画一些简单的逻辑图来做辅助,有助于我们考虑尽可能多的情况:

LPR_Update表示LPR档期的更新日期

从上图中,我们可以看出,LPR_Update1是一定需要且存在的,LPR_Update2有可能存在,也可能不存在。比如现在是2020年03月02日, StartDate我也取该日,那么一直到当月20日左右新发布LPR之前,我们都是沿用的2月份的LPR利息。

上图中第一个LPR_Update1如何获取呢,如何保证在startDate之前的lpr档期正好是前一个而不是前前个,甚至更遥远的呢,其实只要计算两者时间戳之差,如果在一个月以内的,就是最近的一期:

#逻辑表述,非使用的代码

第二个LPR_Update2 就更容易了:

#逻辑表述,非使用的代码

上述两个逻辑合并在一起,本例中具体用python语言怎么表达呢:

mylpr

这里用到了列表循环,将存储在lpr_lib这个列表变量中符合我们要求的LPR档期全都保存到了一个新的列表变量mylpr当中。以上就完成了,LPR计算器工作的一半了,接下来,就要进入到具体的计算场景当中了,实务当中,各地的法院计算标准不一,有些地方以平均LPR值计算,有些地方以最后有效的LPR值作为计算,也有些地方可能以各个LPR来分段计算(笔者尚未遇到过),笔者在微信小程序"律师云助理"和网站中都已做成现成的计算器工具,欢迎体验。

律师云助理​www.lawtip.cn

律师云助理小程序

以上完整的代码,整理起来就是:

import 

今天先写到这里,下半部分,我将择日奉上。另外我的新书筹备中,感兴趣的朋友就关注我吧。

python strptime_Python法律实务应用——制作自己的LPR计算器(上)相关推荐

  1. python strptime_Python法律实务应用——制作自己的LPR计算器

    hello,大家好,我是虞元坚律师.好久不写文章,今天给大家介绍Python法律实务的一个基础应用--司法计算器的制作. 司法计算是一门律师基本功,尤其对诉讼律师来说,更是经常遇到,例如诉讼费.律师费 ...

  2. python计算器教程,用Python程序制作一个简单的计算器

    用Python程序制作一个简单的计算器 在此示例中,您将学习创建一个简单的计算器,该计算器可以根据用户的输入进行加,减,乘或除. 要理解此示例,您应该了解以下Python编程主题: 通过函数创建简单计 ...

  3. python matpoltlib绘制动态图_使用Python、Geopandas和Matplotlib制作gif动态

    原标题:使用Python.Geopandas和Matplotlib制作gif动态 不需要Photoshop:仅使用Python和命令行制作动画图表. 作为一种编程语言,Python非常灵活.这使得有时 ...

  4. 使用Python中的Button组件制作按钮

    使用Python中的Button组件制作按钮 本篇文章小编给大家分享如何在Python中使用Button组件制作按钮. 生活中我们会遇到各种各样的登录界面,比如在登陆QQ时将账号和密码输入完备后,需要 ...

  5. python 单机程序_Python tkinter制作单机五子棋游戏

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Python家庭,作者Python家庭 实战项目:使用Python ...

  6. 专业的python培训机构吃透Python的金融实务应用

    掌握Python在金融实务中的应用,已经成为金融科技达人们必备的技能之 一.虽然Python是十分易学的一门编程语言,但对大部分金融从业者来说门槛略高. 作为从事金融工作超过20年的资深金融从业者,斯 ...

  7. python画动态表情包_真香!一行Python代码,帮你制作小姐姐的表情包,靠谱吗?...

    原标题:真香!一行Python代码,帮你制作小姐姐的表情包,靠谱吗? (我的IU女神) 对于小姐姐的动态表情包,相必我们大多数人都不会拒绝,而且都会选择默默的将其收藏(不要问我怎么知道的),一方面小姐 ...

  8. python入门学习小工具制作系列各种小工具整理

    一.制作基于windows系统批量重命名文件小工具 参考博客: 使用python做一个批量重命名文件的小工具_讷言丶的博客-CSDN博客 效果展示: 临时01 代码实现: import os from ...

  9. 用python的tkinter和爬虫制作一个天气查询窗口

    翻开从前的代码,发现有段时间对 tkinter 图形化开发界面特别感兴趣,所以在这里和大家分享一下,做的一个小小的实例. 那么如何快速的创建一个GUI程序,只需要先导入Tkinter模块,创建一个窗口 ...

最新文章

  1. 【转】Android 4.3源码的下载和编译环境的安装及编译
  2. dropdownlist三级联动怎么实现_Excel下拉菜单不会做?15秒教会你制作一二三级联动下拉菜单,从此做表不求人!...
  3. android arm
  4. 沦为一个教师——地震余震篇
  5. 【数据竞赛】从0梳理1场数据挖掘赛事!
  6. Android开发学习之路-环境搭建
  7. 作者:陈威,电子科技大学互联网科学中心硕士生。
  8. 格式化显示(日期\货币)
  9. Windows10与Vmware配置Windowsserver2003共享磁盘
  10. 6.6 BERT家族02——sentence-BERT、BioBERT
  11. Allegro异型焊盘制作_百度经验
  12. struts2 iterator、append、merge标签总结
  13. jquery实现返回顶部的效果
  14. Qt5调用VBS脚本
  15. 国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案)
  16. sns java_JEESNS首页、文档和下载 - Java 开源 SNS 社区系统
  17. 给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。
  18. 简单c语言实现小猫钓鱼
  19. 使用语义分割架构的文档扫描仪 DeepLabV3
  20. 改进埃尔米特(Hermite)分段三次插值——(可在pchip函数中自定义导数值)

热门文章

  1. QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
  2. 微生物组:3分和30分文章差距在哪里?
  3. 星星模型 维度_用模型“想象”出来的target来训练,可以提高分类的效果!
  4. R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用factor.plot函数可视化斜交旋转因子分析、并解读可视化图形
  5. R语言ggplot2可视化:为可视化图像添加多行标题(multi line title)并将多行标题居中对齐(center align)
  6. Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件
  7. pandas重命名列名称、数据列名称重命名(Rename Column Names): rename、set_axis、df.columns
  8. R语言parse函数、deparse函数、expression函数实现字符串和表达式的转换实战
  9. 特征工程之统计变换:对数+百分位秩+取Rank+Tukey打分+BoxCox+Percentile Rank
  10. 序列多重比对工具:MUSCLE