电子说
日常生活中,随处可见各种各样的编号,能不能用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 i in range(65,69):
for j in range(1,6):
data=chr(i)+'{:0>3}'.format(j)+' '
print(data,end='')
print()
结果输出如下:
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !