日常生活中,随处可见各种各样的编号,能不能用Python生成这样的编号呢?
解决方案
对数据进行编号,也是对字符串格式化操作的一种方式,设置填充字符(编号通常设置0),设置对齐方式时可以使用<、>和^符号表示左对齐、右对齐和居中对齐,对齐填充的符号在“宽度”范围内输出时填充,如:
print('{:0>3}'.format(1))
print('{:0>5}'.format('03'))
print('a{:0>6}'.format(111))
输出结果为:
001 00003 a000111 |
要生成的编号通常比较复杂,如根据当天的日期建立编号,或者批量生成编号,或者将给定的批量数据中的数字转换成位数固定的编号,下面给出实现如上编号的实现方法:
importdatetime
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 |
#批量生成编号
foriinrange(1,6):
print('mr{:0>3}'.format(i))
mr001 mr002 mr003 mr004 mr005 |
要实现嵌套编号,如A001-A005,B001-B005,C001-005的嵌套编号。代码如下:
foriinrange(65,69):
forjinrange(1,6):
data=chr(i)+'{:0>3}'.format(j)+' '
print(data,end='')
print()
结果输出如下:
审核编辑:刘清
-
字符串
+关注
关注
1文章
575浏览量
20471 -
python
+关注
关注
55文章
4775浏览量
84388
发布评论请先 登录
相关推荐
评论