能不能用Python生成这样的编号呢

电子说

1.2w人已加入

描述

日常生活中,随处可见各种各样的编号,能不能用Python生成这样的编号呢?

解决方案

对数据进行编号,也是对字符串格式化操作的一种方式,设置填充字符(编号通常设置0),设置对齐方式时可以使用<、>和^符号表示左对齐、右对齐和居中对齐,对齐填充的符号在“宽度”范围内输出时填充,如:

print('{:0>3}'.format(1))

print('{:0>5}'.format('03'))

print('a{:0>6}'.format(111))

输出结果为:

001
00003
a000111

要生成的编号通常比较复杂,如根据当天的日期建立编号,或者批量生成编号,或者将给定的批量数据中的数字转换成位数固定的编号,下面给出实现如上编号的实现方法:

import datetime

wx=datetime.datetime.now().date()

now=datetime.datetime.now()

print(str(wx)+'{:0>3}'.format(1))    # 年月日 +3位编号

print('{:%Y%m%d}{:0>3}'.format(now,1))   # 年月日 +3位编号

print('{:%Y%m%d}NO{:0>5}'.format(now,5))   # 年月日+NO+3位编号

print('{:%Y}NO{:0>5}'.format(now,5))   # 日期+NO+3位编号

print('{:%H%M}NO{:0>3}'.format(now,5))   # # 时钟+分 +NO+3位编号

 输出结果为:

2019-08-01001
20190801001
20190801NO00005
2019NO00005
1155NO005
20190801 NO001
01 NO001
1155 NO001

# 批量生成编号

for i in range(1,6):

print('mr{:0>3}'.format(i))

mr001
mr002
mr003
mr004
mr005

要实现嵌套编号,如A001-A005,B001-B005,C001-005的嵌套编号。代码如下:

for in range(65,69):

    for in range(1,6):

        data=chr(i)+'{:0>3}'.format(j)+' '

        print(data,end='')

    print()

结果输出如下:

python



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分