所有由大程哥发布的文章

PYTHON学习之sorted函数

PYTHON是一种非常灵活的语言,可以用来快速开发,语言简洁,而且功能强大,最近在处理数据时遇到了排序的问题,使用了SORTED函数,不得不感叹PYTHON的强大。

问题描述:遍历输出一个字典数据,输出前按照KEY的第9至12位数据进行排序。

第一步,认识sorted函数

Sorted可以对所有的可迭代对象进行排序,在PYTHON中,list、tuple、set、dict等数据结构都是可迭代的对象,因此都可以使用sorted函数进行排序,尤其是要进行遍历输出的时候,非常方便。sorted的语法是:

sorted(iterable, key=None, reverse=False)

iterable是可迭代的对象,key是排序的关键字,reverse是排序的顺序,默认是升序

第二步,认识lambda函数

lambda是匿名函数,不用单独定义,使用起来方便,正常的函数必须先定义,再使用。而lambda只用简单定义,即可实现一个函数的功能。

常规函数的定义和使用:

def sum(x,y):
return x+y
result=sum(5,3)

使用lambda定义匿名函数:

sumFunc=lambda x,y:x+y
result=sumFunc(5,3)

第三步,解决问题

所要排序的数据时一个字典,排序的依据是KEY中的第9至12位数据,然后输出字典里面的数据。

for item in sorted(myDict,key=lambda item:item[9:12])
print(item,myDict[item])

电子投标回执中的文件指纹或唯一码验证

电子投标不同于纸质投标,纸质投标打印、盖章等一系列环节都能够用眼睛看到,发现了过去也能够修改。但是电子标就不同了,一切操作都在电脑中进行,不如纸质标有把握,就比如说上传投标文件之后,有没有怀疑传错了文件之类的想法?今天就来说说这个问题,以及解决办法。

解决该问题最好的办法就是在电脑上保留唯一的投标文件材料,在电子标书制作过程中,可能保留很多副本,盖章以及生成最终的投标文件时,也可能为了测试,电脑上保存了很多副本。这样的行为很常见,比如此次测试时将电子投标文件保存到了一个地方,下一次再生成时,又放在了另一个地方。切记,不要在电脑上保存多个副本,有时候选择的时候,文件名一样,如果不注意路径,很可能就选错了。

那么上传之后,如何核实该文件跟本地的文件一致呢?答案很简单,就是利用文件指纹验证。大部分系统上传投标文件时,都会有打印回执的地方,回执里面显示了上传的时间,名称等信息,最后面还一个文件指纹或者唯一码,利用该信息就能够验证上传的是否跟本地是同一个文件。

文件指纹是一串大写字母或数字组成的字符串,相同内容生成的文件指纹一样。因此我们只需要将本地投标文件生成文件指纹,然后对比就可以了。生成文件指纹的简单方法是:

第一步,按WIN+R键,运行CMD,打开命令行工具,然后进入投标文件保存的地址。

第二步,生成文件的指纹,常见的是MD5编码或者是SHA编码,具体命令如下:
certutil.exe -hashfile filename -MD5
certutil.exe -hashfile filename -SHA1
certutil.exe -hashfile filename -SHA256
filename就是相应的文件名称。

政府采购法第二十二条重大违法记录较大数额罚款的标准(保险业)

《中华人民共和国政府采购法》第二十二条中规定参加政府采购的供应商在“参加政府采购活动前三年内,在经营活动中没有重大违法记录”,重大违法记录《中华人民共和国政府采购法实施条例》中有过描述,即供应商因违法经营受到刑事处罚或者责令停产停业、吊销许可证或者执照、较大数额罚款等行政处罚。其中前几项处罚比较明确,最后一项较大数额罚款让人疑惑,到底罚款多少算是较大数额罚款?下面以保险行业为例,寻找相关的法律法规。

《中国银保监会行政处罚办法》里面对保险行业的重大违法记录中的较大数额罚款有详细说明,较大数额的罚款是指:
(一)银保监会对实施银行业违法行为的单位作出的五百万元以上(不含本数,下同)罚款、对实施银行业违法行为的个人作出的五十万元以上罚款,对实施保险业违法行为的单位作出的一百五十万元以上罚款、对实施保险业违法行为的个人作出的十万元以上罚款;
(二)银保监局对实施银行业违法行为的单位作出的三百万元以上罚款、对实施银行业违法行为的个人作出的三十万元以上罚款,对实施保险业违法行为的单位作出的五十万元以上罚款、对实施保险业违法行为的个人作出的七万元以上罚款;

可见,对于保险行业重大违法记录中的较大数额罚款是指保监会对单位150万元以上罚款,对个人10万元以上的罚款;银保监分局对单位作出的50万元以上的罚款,对个人7万元以上的罚款(以上不含本数)。

《关于规范保险公司城市定制型商业医疗保险业务的通知》-学习笔记

城市定制型商业医疗保险,就是近两年非常火热的保险产品“惠民保“,”惠民保“是由地方政府及相关部门指导、保险公司商业运作、与基本医保衔接的地方定制型补充医疗保险,它的特点是保费低、保额高、无既往病史限制,因此深受大家的欢迎。近期保监局发布了《中国银保监会办公厅关于规范保险公司城市定制型商业医疗保险业务的通知》(银保监办发[2021]66号),对城市定制型商业医疗保险进行了规范。

一、报备方面

  • 总公司须审核保障方案并出具授权书、精算意见书和法律意见书;
  • 在确定参与项目7个工作日前,保险公司应将保障方案报银保监会派出机构;
  • 每年3月31日前向银保监会派出机构报送上一年度项目运行情况报告。

二、重点查处的问题

  • 保障方案缺乏必要的数据基础;
  • 未按规定使用备案产品或未及时报告保障方案;
  • 参与恶意压价竞争或承保价格低于成本;
  • 违规支付手续费、经纪费或其他费用;
  • 夸大宣传、虚假承诺、误导消费者;
  • 拖赔惜赔;
  • 冒用政府名义进行虚假宣传;
  • 合同期间内单方中途退出;
  • 泄露或违法使用消费者信息;
  • 其他违法违规行为等。

长期护理保险第一批和第二批试点城市-学习笔记

一、第一批长期护理保险试点城市

《人力资源社会保障部办公厅关于开展长期护理保险制度试点的指导意见》(人社厅发〔2016〕80号)对长期护理保险的试点工作提出了指导意见,并列举出了第一批长期护理保险试点城市,共15个,以及两个重点联系省份。

1 河北省 承德市
2 吉林省 长春市
3 黑龙江省 齐齐哈尔市
4 上海市
5 江苏省 南通市、6苏州市
7 浙江省 宁波市
8 安徽省 安庆市
9 江西省 上饶市
10 山东省 青岛市
11 湖北省 荆门市
12 广东省 广州市
13 重庆市
14 四川省 成都市
15 新疆生产建设兵团 石河子市

吉林和山东两省作为国家试点的重点联系省份。

由于吉林和山东两个省份是国家试点的重点联系省份,因此两个省份又陆续开展了一些试点工作,吉林又增长了吉林市、通化市、松原市、梅河口市、珲春市5个试点城市;山东又增加了济南市、淄博市、枣庄市、东营市、烟台市、潍坊市、济宁市、泰安市、威海市、日照市、临沂市、德州市、聊城市、滨州市、菏泽市15个试点城市。

因此第一批长期护理保险试点城市原本是15个,后续又增加了吉林和山东的20个城市,共计35个试点城市。

二、第二批长期护理保险试点城市

《国家医保局 财政部关于扩大长期护理保险制度试点的指导意见》(医保发〔2020〕37号)文件,扩大了长期护理保险试点城市范围,新增加了14个试点城市。

1 北京市 石景山区
2 天津市 天津市
3 山西省 晋城市
4 内蒙古自治区 呼和浩特市
5 辽宁省 盘锦市
6 福建省 福州市
7 河南省 开封市
8 湖南省 湘潭市
9 广西壮族自治区 南宁市
10 贵州省 黔西南布依族苗族自治州
11 云南省 昆明市
12 陕西省 汉中市
13 甘肃省 甘南藏族自治州
14 新疆维吾尔自治区 乌鲁木齐市

第一批长期护理保险试点城市15个,第二批试点城市14个,合计29个。但是也有一种说法,第一批加上后续增加的,实际上是35个,加上第二批的14个,合计有49个。

关于规范保险公司参与长期护理保险制度试点服务的通知-学习笔记

2021年5月28日中国银保监会发布了《中国银保监会办公厅关于规范保险公司参与长期护理保险制度试点服务的通知》(银保监办发[2021]65号),对长期护理保险制度试点服务进行了规范,涉及保险公司的专业服务能力、项目投标管理、经营风险管控、信息系统建设、护理机构管理等方面。

长期护理保险有关的文件:
一是《关于开展长期护理保险制度试点的指导意见》(人社厅发〔2016〕80号)(含第一批试点城市15个);
二是《关于扩大长期护理保险制度试点的指导意见》(医保发〔2020〕37号)(第二批试点城市14个)。

《中国银保监会办公厅关于规范保险公司参与长期护理保险制度试点服务的通知》中的一些内容:

  • 原则上以地市级及以上机构作为投标人,并获得总公司授权;需要总公司的精算意见书、法律意见书;在开标前7个工作日前向银保监局报备,这一部分类似于《关于印发保险公司城乡居民大病保险业务管理办法的通知》(银保监发〔2021〕12号)。
  • 具有经办基本医保或承办大病保险的经验和为项目所在地提供专业化服务的能力。
  • 重点查处以下问题:投标过程中弄虚作假、恶意压价竞争;挪用、截留、侵占长期护理保险资金;给予保险合同约定以外利益;发生服务能力严重不足或服务质量低下;合同期间内单方中途退出;泄露参保群众个人信息;其他严重影响项目正常运行的情况等。
  • 保险公司及分支机构应于每年3月31日前分别向银保监会及其派出机构报送上一年度长期护理保险项目运行情况报告。

品尝正宗臭鳜鱼

现在的社会,已经非常发达了,想吃什么就有什么,各种各样的菜系,各种各样的小吃,只有想不到了,没有吃不到的,可以说坐在家里就能够吃到全国各地的美味。以前吃过几次徽菜,对臭鳜鱼情有独钟,初次见到臭鳜鱼,以为是腌制的鱼放时间长了,所以产生臭味,后来才知道就是这样的味道,闻着臭吃着香。

吃过几次臭鳜鱼,都是在徽菜饭店吃的,不知道是否正宗,就好比满大街的老潼关肉夹馍,也有可能是其他地方的人开的。心想如果有机会去当地吃一次臭鳜鱼,会是什么味道?!还好最近有机会来到了合肥,安徽省的省会,晚上吃饭的时候立马想到了臭鳜鱼。

随便找了一家饭店,点菜的时候发现,盘子都非常小,跟北方的大东北完全不一样,跟南京有点像,点的多,种类多,但是量比较少。于是点了一条臭鳜鱼,顺便还点了臭豆腐,一次吃个够。这里的臭豆腐不是油炸的,而是非常嫩的豆腐块,但是有着明显的臭味。

要说吃地方特色的菜,还是得去当地品尝,其他地方吃的菜,只能吃到形,吃不到神。

对网站的WORDPRESS进行更新

网站的WORDPRESS很久没有更新了,包括里面的主题和插件,一是怕出错,以前出错过一次,后来做的手动更新;二是网站空间PHP版本比较旧,不支持较新的WORDPRESS;三是主题里面更改的内容怕是又得重新更改,实在是麻烦,不愿意折腾了。最近网站出了问题,很多快照被换成了广告,寻思有可能系统太久没有更新,有漏洞,才出现这样的问题。

在进入空间,查看文件是否被修改时,发现网站空间支持的PHP版本由之前的5点几,自动调整成了7点几。以前没有更新WORDPRESS的原因之一是PHP的版本低,现在终于不受这个因素限制了,于是备份好网站后,点击WORDPRESS更新,很快更新完了。同时对各种插件和主题也进行了更新,一步到位,确保以后不再受病毒的攻击。

旧主题修改过样式表,此次还得修改,只不过这次使用的是主题编辑器中的“额外CSS修改”,将CSS代码放在这里面,不用修改原主题,也不用担心出错。

另外,主题的HEADER.PHP和FOOTER.PHP也需要修改,其实很早就听说过建立子主题,有什么需求都在子主题里面修改,原主题不用动。这样主题就能选择自动更新,每一次更新只对原主题更新,子主题不变,不用每一次修改原主题。不过,最近懒得折腾,希望以后有时间再建立一个子主题吧,原主题选择自动更新,有利于网站安全。

PYTHON数据结构学习之集合SET

PYTHON中的SET是一个无序且不重复的集合,第一次用到SET是有大量的元素需要去除重复,只留下唯一的元素,类似于数据库的DISTINCT关键字运算。当然,SET除了去除重复功能之外,还能进行集合的运算,比如集合的交、并、差,用起来非常方便。今天就来学习学习PYTHON中的集合SET。

1 SET的表现形式

列表的关键词是LIST,用[]表示;元组的关键词是TUPLE,用()表示;集合的关键词是SET,用set()或者花括号表示(花括号中必须有元素)。

2 SET的创建

sets=set()                 #创建空集合
sets={1,2}                 #创建两个元素的集合
sets=set([1,2])        #通过迭代对象创建

3 SET添加与删除

sets.add(value) #添加元素
sets.remove(value) #删除某元素
sets.discard(value) #删除某元素(如存在)
sets.update([1,2,3]) #添加多个元素
sets.clear() #删除所有元素

4 SET的交、并、差操作

#先定义两个集合
a={1,2,3}
b={3,4,5}

#交集运算
a&b
#并集运算
a|b
#差集运算
a-b 或者 b-a

5 其它

在使用的过程中,还用到了两个功能,一是统计集合的个数:len(sets);二是对集合的元素排序,sorted(sets),由于集合是无序的,因此sorted(sets)返回的是一个列表。

PYTHON数据结构学习之RANGE

程序有三种控制结构,顺序、循环和选择,顺序就是1、2、3、4一条一条地执行,循环对一个集合的每一个元素进行操作,选择则是有条件地执行语句。在C、JAVA之类的语言中,循环语句常见的有for,for(i=0;i<n;i++){}就是循环n次,执行{}里面的内容。但是在PYTHON中for语句不是这样写的,通常的写法是for i in range(10),那么range是什么意思呢,今天就来学习一下。

for i in range(10),首先range是一个对象,也是一个序列,因此能够使用in 这个关键字,意思是在某某里面,for 对于range对象里面的每个元素进行遍历。

一、RANGE的创建

range(stop)                       #默认从0开始,小于等于stop-1
range(start,stop[,step])     #按照开始、结束生成序列,步长可以设置,相当于[0,stop),含前不含后,下面是一些例子。start没填,默认为0,step默认为1。

data=range(10)               #创建序列[0,10)
data=range(0,10)            #创建序列[0,10)
data=range(0,10,2)         #创建序列[0,10),步长为2

二、RANGE的方法

data.count(3)                 #统计元素3出现次数
data.index(3)                  #返回元素3的位置
data.start                        #range的起始值(含)
data.stop                        #range的终止值(不含)
data.step                        #range对象的步长

三、其他FOR循环方式

刚才说过,for i in range(19),range只是序列,因此这不是唯一的表达方式:也可以用下面几种:

for i in range(10)
for i in (0,1,2,3,4,5,6,7,8,9)
for i in [0,1,2,3,5,6,7,8,9]