建设局网站打不开是什么原因,最新wordpress漏洞,做建材网站,国家为什么不禁止外包目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明
在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时#xff0c;只需…
目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明
在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时只需要输入对应的数字即可。 图1 系统主界面 具体的操作步骤如下 1生成6位数字防伪编码。当用户在主程序界面中输入数字“1”菜单项时将进入“生成6位数字防伪编码 213563型”的功能执行任务。此时要求输入生成防伪码的数量可以根据需要输入生成防伪码的数量如图2所示。按下键开始批量生成防伪码生成后系统将提示用户生成了多少个注册码和生成文件的位置信息等如图3所示。单击“确定”按钮关闭提示信息。在屏幕上可以看到生成的防伪码信息如图4所示。生成的文件在程序所在目录下的“codepath”文件夹下名称为“scode1.txt”如图5所示。 图2 输入操作菜单和生成防伪码数量 图3 提示生成防伪码数量和路径信息 图4 屏幕输出的防伪码信息 图5 生成的防伪码文件 2生成9位系列产品数字防伪编码。在主程序界面中输入数字“2”菜单项时将进入“生成9位系列产品数字防伪编码”的功能执行。在产品系列其实编码输入中输入235在系列产品数量中输入5在每个系列生成数量中输入10000如图6所示按下键开始生成防伪码。生成后系统将提示用户生成防伪码信息如图7所示。同时弹出如图8所示的提示对话框单击“确定”按钮关闭提示对话框。 图6 输入系列数据 图7 生成9位数字防伪码 图8 提示防伪码生成 3生成25位混合产品序列号。在主程序界面中输入数字“3”菜单项时将进入“生成25位混合产品序列码”的功能执行。在输入要生成的数量中输入30000如图9所示并且按下键将生成30000个如图10所示的25位防伪码。生成的文件名称如图11所示。 图9 生成25位混合产品序列码 图10 生成25位混合产品序列码 图11 25位混合产品序列码保存文件 4生成含数据分析功能的防伪编码。在主程序界面中输入数字“4”菜单项时将进入“生成含数据分析功能的防伪编码”的功能执行。在输入要生成的带数据分析功能的验证码数量中输入300并且按下键在输入数据分析编号3位字母中输入ABS并按下键将生成30000个如图9所示的25位防伪码如图12所示。 图12 生成含数据分析功能的防伪编码 5智能批量生成带数据分析功能的防伪码。当用户在功能选择界面中输入数字“5”时进入智能批量生成带数据分析功能的防伪码功能选项在弹出的对话框中选择保存批量生成防伪码信息的文件扩展名为.mri的文件文件内容如图13所示其中前面的3位字母是数据分析码后面的数值是防伪码的个数如图14所示单击“打开”按钮将批量生成防伪码信息并把不同类别的防伪码文件保存在不同的文件中如图15所示。
图13 保存批量生成防伪码信息的文件内容 图14 打开防伪码批量数据文件 图15 批量生成的防伪码文件 6后续补加生成防伪码。在功能选择界面中输入数字“6”时将进入补充防伪码生成功能选项。首先在打开的对话框中选择已经生成的防伪码的文件需要使用前4步中生成的防伪码文件如图16所示。系统将自动分析已经生成的防伪码数量并给出提示对话框如图17所示。接下来要求用户输入补充防伪码的数量根据要求的防伪码数量循环生成新防伪码如图18所示。完成后将提醒防伪码已经完成并提示新生成的防伪码文件的保存位置如图19所示。 图16 选择已经生成的防伪码文件 图17 提示已经存在的防伪码数量 图18 生成补充防伪码 图19 提示防伪码补充生成完成 7EAN-13条形码批量生成。在功能选择界面中输入数字“7”时将进入EAN-13条形码批量生成功能选项。在请输入EN13的国家代码3位中输入692在请输入EAN13的企业代码4位中输入1000在请输入要生成的条形码数量中输入条形码的数量这里输入2并按下键将自动生成条形码如图20所示。生成后的文件保存在项目根目录下的barcode目录中效果如图21所示。 图20 生成条形码 图21 生成后的条形码 8二维码批量输出。在功能选择界面中输入数字“8”时将进入二维码批量输出功能选项。在请输入要生成的12位数字二维码数量中输入二维码的数量这里输入5并按下键将自动生成二维码如图22所示。生成后的文件保存在项目根目录下的barcode目录中效果如图23所示。 图22 生成条形码 图23 生成后的条形码 9企业粉丝防伪码抽奖。在功能选择界面中输入数字“9”时将进入企业粉丝防伪码抽奖功能选项。将弹出文件选择对话框如图2.52所示。选择抽奖信息文件后输入抽取中奖用户数量如图24所示并且按下键将显示抽取的中奖号码如图25所示。 图23 文件选择对话框 图24 输入抽取中奖用户数量 图25 显示抽取的中奖号码 10退出系统。在功能选择界面中输入数字“0”并且按下键即可退出系统如图26所示。 图26 退出系统 主要代码演示
import os
import qrcode
import random
import time
import tkinter
from pystrich.ean13 import EAN13Encoder
import tkinter.filedialog
import tkinter.messagebox
from string import digitsroot tkinter.Tk() # tkinter模4
# 块为python的标准图形界面接口。本代码的目的是建立根窗口
# 初始化数据
number 1234567890
letter ABCDEFGHIJKLMNPQRSTUVWXYZ1234567890
allis 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%^*()_
i 0randstr []
fourth []
fifth []
randfir
randsec
randthr
str_one
strone
strtwo
nextcard
userput
nres_letter # 创建文件夹函数
def mkdir(path):isexists os.path.exists(path) # 判断文件夹路径是否存在if not isexists: # 如果文件夹路径不存在os.mkdir(path) # 创建要创建的文件夹# 读取文件内容函数
def openfile(filename):f open(filename) # 打开指定文件fllist f.read() # 读取文件内容f.close() # 关闭文件return fllist # 返回读取的文件内容# 输入验证函数showstr为input函数提供动态输入提示文字showorder提供验证方式length提供要求输入数据的长度
def inputbox(showstr,showorder,length):instr input(showstr) # 使用input函数要求用户输入信息showstr为输入提示文字if len(instr) ! 0: # 输入数据的长度不为零# 根据输入数据的要求分成三种验证方式验证1数字不限位数2字母3数字且有位数要求if showorder 1: # 验证方式 数字格式不限位数大于零的整数if str.isdigit(instr): # 验证是否为数字if instr 0: # 验证数字是否为0如果是要求重新输入返回值为0print(\033[1;31;40m 输入为零请重新输入\033[0m) # 要求重新输入返回值为“0”return 0 # 函数返回值为“0”为什么返回值为“0”呢读者思考一下else: # 如果输入正确返回输入的数据给返回值return instr #将输入的数据传给函数返回值else: # 如果输入不是数字要求用户重新输入函数返回值为“0”print(\033[1;31;40m输入非法请重新输入\033[0m) # 要求用户重新输入return 0 # 函数返回值为“0”if showorder 2: # 验证方式2 要求字母格式且是三个字母if str.isalpha(instr): # 判断输入是否为字母if len(instr) ! length: # 判断输入的是否为三个字母如果不是则要求重新输入返回值为“0”print(\033[1;31;40m必须输入三个字母请重新输入\033[0m) # 要求重新输入return 0 # 返回值为“0”else: # 如果输入是三个字母返回输入的字母return instr # 将函数返回值设置为输入的字母else: # 如果输入不是字母print(\033[1;31;40m输入非法请重新输入\033[0m) # 要求重新输入return 0 # 返回值为“0”if showorder 3: # 验证方式3 要求数字格式且输入数字位数有要求if str.isdigit(instr): # 验证是否为数字if len(instr) ! length: # 验证输入数字是否为要求长度位数如果不是3位数字则要求重新输入print(\033[1;31;40m必须输入 str(length) 个数字请重新输入\033[0m) # 要求重新输入return 0 # 返回值为“0”else: # 输入数字满足要求设置函数返回值为输入信息return instr #设置函数返回值为输入信息else: # 如果输入不是数字print(\033[1;31;40m输入非法请重新输入\033[0m) # 提示输入非法要求重新输入return 0 # 函数返回值为“0”else: # 如果没有输入任何内容即输入为空print(\033[1;31;40m输入为空请重新输入\033[0m) # 提示输入为空要求重新输入return 0 # 函数返回值为“0”# 实现屏幕输出和文件输出编码信息函数# sstr参数为输出防伪码数据, sfile为输出的文件名称
# typeis设置输出完成后是否通过信息框提示, smsg为信息提示框的提示文字datapath 保存防伪码的文件夹
def wfile(sstr, sfile, typeis, smsg,datapath):mkdir(datapath) # 调用该函数创建文件夹datafile datapath \\ sfile # 设置保存防伪码的文件包含路径file open(datafile, w) # 打开保存防伪码的文件如果文件不存在则创建该文件wrlist sstr # 将防伪码信息赋值给wrlistpdata # 清空变量pdatapdata存储屏幕输出的防伪码信息wdata # 清空变量 wdata wdata 存储保存到文本文件的防伪码信息for i in range(len(wrlist)): # 按条循环读取防伪码数据wdata str(wrlist[i].replace([, )).replace(], ) # 去掉字符的中括号wdata wdata.replace(,).replace(, ) # 去掉字符的引号file.write(str(wdata)) # 写入保存防伪码的文件pdata pdata wdata # 将单条防伪码存储到pdata 变量file.close() # 关闭文件print(\033[1;31m pdata \033[0m) # 屏幕输出生成的防伪码信息if typeis ! no: # 是否显示“输出完成”的信息提示框。如果typeis的值为“no”,不现显示# 显示“输出完成”的信息提示框。显示信息包含方位信息码的保存路径tkinter.messagebox.showinfo(提示, smsg str(len(randstr)) \n 防伪码文件存放位置 datafile)root.withdraw() # 关闭辅助窗口# 实现屏幕输出和文件输出编码信息参数schoice设置输出的文件名称def scode1( schoice):# 调用inputbox函数对输入数据进行非空、输入合法性判断incount inputbox(\033[1;32m 请输入您要生成验证码的数量:\33[0m, 1, 0)while int(incount) 0: # 如果输入为字母或数字0,则要求重新输入incount inputbox(\033[1;32m 请输入您要生成验证码的数量:\33[0m, 1, 0)randstr.clear() # 清空保存批量注册码信息的变量randstrfor j in range(int(incount)): # 根据输入的验证码数量循环批量生成注册码randfir # 设置存储单条注册码的变量为空for i in range(6): # 循环生成单条注册码randfir randfir random.choice(number) # 产生数字随机因子 randfir randfir \n # 在单条注册码后面添加转义换行字符“\n”使验证码单条列显示 randstr.append(randfir) # 将单条注册码添加到保存批量验证码的变量randstr #调用函数wfile()实现生成的防伪码屏幕输出和文件输出wfile(randstr,scode str(schoice) .txt, , 已生成6位防伪码共计,codepath)# 生成9位系列产品数字防伪编码函数参数schoice设置输出的文件名称
def scode2(schoice):ordstart inputbox(\033[1;32m 请输入系列产品的数字起始号3位:\33[0m, 3, 3)while int(ordstart) 0: # 如果输入非法符号、字母或者数字0都认为是非法输入重新输入ordstart inputbox(\033[1;32m 请输入系列产品的数字起始号3位:\33[0m, 3, 3)ordcount inputbox(\033[1;32m 请输入产品系列的数量:, 1, 0)# 如果输入的产品系列数量小于1或者大于9999,,则要求重新输入while int(ordcount) 1 or int(ordcount) 9999:ordcount inputbox(\033[1;32m 请输入产品系列的数量:, 1, 0)incount inputbox(\033[1;32m 请输入要生成的每个系列产品的防伪码数量:\33[0m, 1, 0)while int(incount) 0: # 如果输入为字母或数字0,则要求重新输入incount inputbox(\033[1;32m 请输入您要生成验证码的数量:\33[0m, 1, 0)randstr.clear() # 清空保存批量注册码信息的变量randstrfor m in range(int(ordcount)): # 分类产品编号for j in range(int(incount)): # 产品防伪码编号randfir for i in range(6): # 生成一个不包含类别的产品防伪码randfir randfir random.choice(number) # 每次生成一个随机因子randstr.append(str(int(ordstart) m) randfir \n) # 将生成的单条防伪码添加到防伪码列表#调用函数wfile()实现生成的防伪码屏幕输出和文件输出wfile(randstr, scode str(schoice) .txt, , 已生成9位系列产品防伪码共计,codepath)# 生成25位混合产品序列号函数参数schoice设置输出的文件名称
def scode3(schoice):# 输入要生成的防伪码数量incount inputbox(\033[1;32m 请输入要生成的25位混合产品序列号数量:\33[0m, 1, 0)while int(incount) 0: # 如果输入非法符号、字母或者数字0都认为是非法输入重新输入incount inputbox(\033[1;32m 请输入要生成的25位混合产品序列号数量:\33[0m, 1, 0)randstr.clear() # 清空保存批量注册码信息的变量randstrfor j in range(int(incount)): # 按输入数量生成防伪码strone # 保存生成的单条防伪码不带横线“-”循环时清空for i in range(25):strone strone random.choice(letter) #每次产生一个随机因子也就是每次产生单条防伪码的一位# 将生成的防伪码每隔5位添加横线“-”strtwo strone[:5] - strone[5:10] - strone[10:15] - strone[15:20] - strone[20:25] \nrandstr.append(strtwo) # 添加防伪码到防伪码列表#调用函数wfile()实现生成的防伪码屏幕输出和文件输出wfile(randstr, scode str(schoice) .txt, , 已生成25混合防伪序列码共计,codepath)# 生成含数据分析功能防伪编码函数参数schoice设置输出的文件名称
def scode4(schoice):intype inputbox(\033[1;32m 请输入数据分析编号3位字母:\33[0m, 2, 3)# 验证输入是否是三个字母所以要判断输入是否是字母和输入长度是否为3while not str.isalpha(intype) or len(intype) ! 3:intype inputbox(\033[1;32m 请输入数据分析编号3位字母:\33[0m, 2, 3)incount inputbox(\033[1;32m 请输入要生成的带数据分析功能的验证码数量:\33[0m, 1, 0) ## 验证输入是否是大于零的整数判断输入转换为整数值时是否大于零while int(incount) 0: # 如果转换为整数时为零则要求重新输入incount inputbox(\033[1;32m 请输入要生成的带数据分析功能的验证码数量:\33[0m, 1, 0) #ffcode(incount,intype,,schoice) # 调用 ffcode函数生成注册信息# 生成含数据分析功能防伪编码函数参数scount为要生成的防伪码数量typestr为数据分析字符
# 参数ismessage在输出完成时是否显示提示信息为“no”不显示为其他值显示参数schoice设置输出的文件名称
def ffcode(scount, typestr,ismessage, schoice):randstr.clear() # 清空保存批量注册码信息的变量randstr# 按数量生成含数据分析功能注册码for j in range(int(scount)):strpro typestr[0].upper() # 取得三个字母中的第一个字母并转为大写区域分析码strtype typestr[1].upper() # 取得三个字母中的第二个字母并转为大写颜色分析码strclass typestr[2].upper() # 取得三个字母中的第三个字母并转为大写版本分析码randfir random.sample(number, 3) # 随机抽取防伪码中的三个位置不分先后randsec sorted(randfir) # 对抽取的位置进行排序并存储给randsec变量以便按顺序排列三个字母的位置letterone # 清空存储单条防伪码的变量letteronefor i in range(9): # 生成9位的数字防伪码letterone letterone random.choice(number)# 将三个字母按randsec变量中存储的位置值添加到数字防伪码中并放到sim变量中sim str(letterone[0:int(randsec[0])]) strpro str(letterone[int(randsec[0]):int(randsec[1])]) strtype str(letterone[int(randsec[1]):int(randsec[2])]) strclass str(letterone[int(randsec[2]):9]) \nrandstr.append(sim) # 将组合生成的新防伪码添加到randstr变量# 调用wfile()函数实现生成的防伪码屏幕输出和文件输出wfile(randstr, typestr scode str(schoice) .txt, ismessage, 生成含数据分析防伪码共计,codepath)# 生成含数据分析功能防伪编码函数参数schoice设置输出的文件名称
def scode5(schoice):default_dir rmrsoft.mri # 设置默认打开的文件名称# 打开文件选择对话框指定打开的文件名称为mrsoft.mri 扩展名为“mri”可以使用记事本打开和编辑file_path tkinter.filedialog.askopenfilename(filetypes[(Text file,*.mri)],titleu请选择自动防伪码智能批处理文件,initialdir(os.path.expanduser(default_dir)))codelist openfile(file_path) # 读取从文件选择对话框选中的文件print(前,codelist)codelist codelist.split(\n) # 把读取的信息内容添加回车以便列输出显示print(后,codelist)for item in codelist: # 按读取的信息循环生成防伪码codea item.split(,)[0] # 每一行信息中用 ,分割,前面的信息存储防伪码标准信息codeb item.split(,)[1] # 每一行信息中用 ,分割,后面的信息存储防伪码生成的数量ffcode(codeb, codea,no ,schoice) # 调用ffcode函数批量生成同一标识信息的防伪码# 后续补加生成防伪码函数防伪码格式为带数据分析功能注册码
def scode6(schoice):default_dir rc:\ABDscode5.txt # 设置默认打开的文件名称# 按默认的文件名称打开文件选择对话框用于打开已经存在的防伪码文件file_path tkinter.filedialog.askopenfilename(titleu请选择已经生成的防伪码文件,initialdir(os.path.expanduser(default_dir)))codelist openfile(file_path) # 读取从文件选择对话框选中的文件codelist codelist.split(\n) # 把读取的信息内容添加回车以便列输出显示codelist.remove() # 删除列表中的空行strset codelist[0] # 读取一行数据以便获取原验证码的字母标志信息remove_digits strset.maketrans(, , digits) # 用maketrans方法创建删除数字的字符映射转换表res_letter strset.translate(remove_digits) # 根据字符映射转换表删除该条防伪码中的数字获取字母标识信息nres_letter list(res_letter) # 把信息用列表变量nres_letter存储strpro nres_letter[0] # 从列表变量中取得第一个字母即区域分析码strtype nres_letter[1] # 从列表变量中取得第二个字母即色彩分析码strclass nres_letter[2] # 从列表变量中取得第三个字母即版次分析码# 去除信息中的括号和引号nres_letter strpro.replace(,).replace(, ) strtype.replace(,).replace(, ) strclass.replace(,).replace(, )print(sssssssssss,nres_letter)card set(codelist) # 将原有防伪码放到集合变量card中# 利用tkinter的messagebox提示用户之前生成的防伪码数量tkinter.messagebox.showinfo(提示, 之前的防伪码共计 str(len(card)))root.withdraw() # 关闭提示信息框incount inputbox(请输入补充验证码生成的数量:, 1, 0) # 让用户输入新补充生成的防伪码数量# 最大值按输入生成数量的2倍数量生成新防伪码防止新生成防伪码与原有防伪码重复造成新生成的防伪码数量不够,for j in range(int(incount) * 2):randfir random.sample(number, 3) # 随机产生3位不重复的数字randsec sorted(randfir) #对产生的数字排序addcount len(card) # 记录集合中防伪码的总数量strone # 清空存储单条防伪码的变量stronefor i in range(9): # 生成9位的数字防伪码strone strone random.choice(number)# 将三个字母按randsec变量中存储的位置值添加到数字防伪码中并放到sim变量中sim str(strone[0:int(randsec[0])]) strpro str(strone[int(randsec[0]):int(randsec[1])]) strtype str(strone[int(randsec[1]):int(randsec[2])]) strclass str(strone[int(randsec[2]):9]) \ncard.add(sim) # 添加新生成的防伪码到集合# 如果添加到集合,证明生成的防伪码与原有的防伪码没有产生重复if len(card) addcount:randstr.append(sim) # 添加新生成的防伪码到新防伪码列表addcount len(card) # 记录最添加新生成防伪码集合的防伪码数量if len(randstr) int(incount): # 如果新防伪码列表中的防伪码数量达到输入的防伪码数量print(len(randstr)) # 输出已生成防伪码的数量break # 退出循环# 调用函数wfile()函数实现生成的防伪码屏幕输出和文件输出wfile(randstr, nres_letter ncode str(choice) .txt, nres_letter, 生成后补防伪码共计,codeadd)# tkinter.messagebox.showinfo(提示, 已生成补充防伪码共 str(len(randstr))) # 提示# root.withdraw()# 条形码EAN13批量生成函数
def scode7(schoice):mainid inputbox(\033[1;32m 请输入EN13的国家代码3位 :\33[0m, 3, 3) # 输入3位国家代码# while int(mainid) 1 or len(mainid) ! 3: # 验证输入是否为3位数字转为整数后小于1和长度不等于3重新输入# mainid inputbox(\033[1;32m 请输入EAN13的国家代码3位::\33[0m, 1, 0)compid inputbox(\033[1;32m 请输入EAN13的企业代码4位:\33[0m, 3, 4) # 输入4位企业代码# while int(compid) 1 or len(compid) ! 4: # 验证输入是否为4位数字# compid inputbox(\033[1;32m 请输入EAN13的企业代码4位:\33[0m, 1, 0)incount inputbox(\033[1;32m 请输入要生成的条形码数量:\33[0m, 1, 0) # 输入要生成的条形码数量while int(incount) 0: # 输入信息转为整数后等于0重新输入incount inputbox(\033[1;32m 请输入要生成的条形码数量:\33[0m, 1, 0)mkdir(barcode) # 判断保存条形码的文件夹是否存在不存在则创建该文件夹for j in range(int(incount)): # 批量生成条形码strone # 清空存储单条条形码的变量for i in range(5): # 生成条形码的6位除国家代码、企业代码和校验位之外的6位数字strone strone str(random.choice(number))barcodemainid compid strone # 把国家代码、企业代码和新生成的随机码进行组合# 计算条形码的校验位evensum int(barcode[1]) int(barcode[3]) int(barcode[5]) int(barcode[7]) int(barcode[9]) int(barcode[11]) # 偶数位oddsum int( barcode[0])int(barcode[2])int(barcode[4])int(barcode[6])int(barcode[8]) int(barcode[10])# checkbitint(10-(evensum *3 oddsum)%10)checkbit int((10 - (evensum * 3 oddsum) %10)% 10)barcodebarcodestr(checkbit) # 组成完整的EAN13条形码的13位数字print (barcode)encoder EAN13Encoder(barcode) # 调用EAN13Encoder生成条形码encoder.save(barcode\\ barcode .png) # 保存条形码信息图片到文件# 本函数生成固定的12位二维码读者可以根据实际需要修改成按输入位数进行生成的函数
def scode8(schoice):# 输入要生成的二维码数量incount inputbox(\033[1;32m 请输入要生成的12位数字二维码数量:\33[0m, 1, 0)while int(incount) 0: # 如果输入不是大于0的数字重新输入incount inputbox(\033[1;32m 请输入要生成的12位数字二维码数量:\33[0m, 1, 0)mkdir(qrcode) # 判断保存二维码的文件夹是否存在不存在则创建该文件夹for j in range(int(incount)): # 批量生成二维码strone # 清空存储单条二维码的变量for i in range(12): # 生成单条二维码数字strone strone str(random.choice(number))encoder qrcode.make(strone) # 生成二维码encoder.save(qrcode\\ strone .png) # 保存二维码图片到文件#抽奖函数
def scode9(schoice):default_dir rlottery.ini # 设置默认打开文件为开发路径下的lottery.ini# 选择包含用户抽奖信息票号的文件扩展名为“*.ini”file_path tkinter.filedialog.askopenfilename(filetypes[(Ini file,*.ini)],titleu请选择包含抽奖号码的抽奖文件,initialdir(os.path.expanduser(default_dir)))codelist openfile(file_path) # 调用 openfile()函数读取刚打开的抽奖文件codelist codelist.split(\n) # 通过回行转义符把抽奖信息分割成抽奖数列incount inputbox(\033[1;32m 请输入要生成的中奖数量:\33[0m, 1, 0) # 要求用户输入中抽奖数量while int(incount) 0 or len(codelist) int(incount): # 如果输入中抽奖数量等于0或超过抽奖数组数量重新输入incount inputbox(\033[1;32m 请输入要生成的抽奖数量:\33[0m, 1, 0)strone random.sample(codelist,int(incount)) # 根据输入的中奖数量进行抽奖print(\033[1;35m 抽奖信息名单发布 \33[0m)for i in range(int(incount)): # 循环将抽奖数列的引号和中括号去掉wdata str(strone[i].replace([, )).replace(], ) # 将抽奖数列的中括号去掉wdata wdata.replace(,).replace(, ) # 将抽奖数列的引号去掉print(\033[1;32m wdata \33[0m) # 输出中奖信息# 输入数字验证判断输入是否在0-9之间的整数
def input_validation(insel):if str.isdigit(insel):insel int(insel)# if insel 0:# # print(\033[1;31;40m 输入非法请重新输入\033[0m)# return 0# else:# return inselreturn inselelse:print(\033[1;31;40m 输入非法请重新输入\033[0m)return 0# 企业编码管理系统主菜单
def mainmenu():# os.system(clear)print(\033[1;35m****************************************************************企业编码生成系统****************************************************************1.生成6位数字防伪编码 213563型2.生成9位系列产品数字防伪编码(879-335439型)3.生成25位混合产品序列号(B2R12-N7TE8-9IET2-FE35O-DW2K4型)4.生成含数据分析功能的防伪编码(5A61M0583D2)5.智能批量生成带数据分析功能的防伪码6.后续补加生成防伪码(5A61M0583D2)7.EAN-13条形码批量生成8.二维码批量输出 9.企业粉丝防伪码抽奖0.退出系统说明通过数字键选择菜单\033[0m)def codeprint(cstr, cint):str1 cstr[0]str2 cstr[1]str3 cstr[2]for i in range(int(cint)):strbook str1 str2 random.choice(letter) random.choice(letter) random.choice(letter) str2 str3print(strbook)# 通过循环控制用户对程序功能的选择
while i 9:# 调入程序主界面菜单mainmenu()# 键盘输入需要操作的选项choice input(\033[1;32m 请输入您要操作的菜单选项:\33[0m)if len(choice) ! 0: # 输入如果不为空choice input_validation(choice) # 验证输入是否为数字if choice 1:scode1( str(choice)) # 如果输入大于零的整数调用scode1()函数生成注册码# 选择菜单2,调用scode2()函数生成9位系列产品数字防伪编码if choice 2:scode2(choice)# 选择菜单3,调用scode3()函数生成25位混合产品序列号if choice 3:scode3(choice)# 选择菜单4,调用scode4()函数生成含数据分析功能的防伪编码if choice 4:scode4(choice)# 选择菜单5,调用scode5()函数智能批量生成带数据分析功能的防伪码if choice 5:scode5(choice)# 选择菜单,调用scode6()函数后续补加生成防伪码if choice 6:scode6(choice)# 选择菜单7,调用scode7()函数批量生成条形码if choice 7:scode7( choice)# 选择菜单8,调用scode8()函数批量生成二维码if choice 8:scode8( choice)# 选择菜单9,调用scode9()函数生成企业粉丝抽奖程序if choice 9:scode9( choice)# 选择菜单0,退出系统if choice 0:i 0print(正在退出系统!!)breakelse:print(\033[1;31;40m 输入非法请重新输入\033[0m)time.sleep(2)源码及说明文档下载路径
企业编码管理的程序-python源码-可执行程序