Python_002 | 根据指定字符生成序列随机字符串_修改版


上次做的随机生成字符串的代码,稍微显得有点简陋,参见上文:

Python_001_根据指定字符生成序列随机字符串

这次做了一个修改版本,此版本比上次的多了一些验证同时加入了很多验证的基准类型。


import random

welcom = '欢迎您使用本软件,本程序的作用是根据用户输入的条件生成指定长度指定数量的随机数'

author = '作者:格子工作室'

email = '邮箱:1831795577@qq.com'

version = '版本:V 1.0.0'

bar = '='*20

br = '\n'

#书写欢迎信息、作者信息、邮箱、版本等资料

print(bar*4 + br)

print(welcom)

print(author)

print(email)

print(version)

print(br + bar*4)

print(br)

#定义用户输入组合

#单纯数字 0 - 9

type_num = ['0','1','2','3','4','5','6','7','8','9']

#小写字母 a - z

type_lowwer_words = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

#大写字母 A - Z

type_upper_words = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

#单纯数字 + 小写字母

type_num_lowwer = type_num + type_lowwer_words

#单纯数字 + 大写字母

type_num_upper = type_num + type_upper_words

#小写字母 + 大写字母

type_lowwer_upper = type_lowwer_words + type_upper_words

#数字 + 小写字母 + 大写字母

type_all = type_num + type_lowwer_words + type_upper_words

#根据获取 用户 给定的数值,得到随机数组合的结果

def get_random_type():

    print('请根据您的需求对需要生成的数码组合进行选择!')

    print('输入 1 :仅用数字')

    print('输入 2 :仅用小写字母')

    print('输入 3 :仅用大写字母')

    print('输入 4 :用数字 + 小写字母')

    print('输入 5 :用数字 + 大写字母')

    print('输入 6 :用小写字母 + 大写字母')

    print('输入 7 :用数字 + 小写字母 + 大写字母')

    get_userType = input('请输入您的选择:')

    if get_userType.isdigit():

        global user_Type

        #获取到的数值仍然为Str

        if get_userType == '1' :

            user_Type = type_num


        elif get_userType == '2' :

            user_Type = type_lowwer_words


        elif get_userType == '3' :

            user_Type = type_upper_words


        elif get_userType == '4' :

            user_Type = type_num + type_lowwer_words


        elif get_userType == '5' :

            user_Type = type_num + type_upper_words


        elif get_userType == '6' :

            user_Type = type_lowwer_upper

        elif get_userType == '7' :

            user_Type = type_all


        else:

            print(bar)

            print(br)

            print('请输入正确的选择,选择范围 1-6')

            print(br)

            get_random_type()

    else:

        print(bar)

        print(br)

        print('输入错误:请输入正确的选择,选择范围 1-6')

        print(br)

        get_random_type()


#调用函数取得用户输入资料

get_random_type()

def get_random_Len():

    get_Len = input('请输入您需要生成的随机数码的长度: 例如 : 20 ' + br)

    if get_Len.isdigit():

        return get_Len

    else:

        print(bar)

        print(br)

        print('输入错误:请输入正确的选择')

        print(br)

        get_random_Len()


#获取用户输入的要生成的随机数码长度

Enter_Len = int(get_random_Len())

#获取用户输入的需要生成的随机数码数量

def get_num():

    get_num_line = input('请输入您需要生成的随机数码的数量:')

    if get_num_line.isdigit():

        return get_num_line

    else:

        print(bar)

        print(br)

        print('输入错误,请输入正确的随机数码数量!')

        print(br)

        get_num()

#获取需要生成的随机数码的数量

get_nums = int(get_num())

if (len(user_Type) / Enter_Len) >= 1 :

    print('正在处理,请稍等!')

    print('处理完成后,您可以打开软件所在目录下寻找 Random_list.txt 文件 。 ')

    print('请注意:如果要重新生成,请将目录下的 Random_list.txt 文件删除,以免造成数据混乱。 ')

    for random_x in range(0,get_nums):

        #随机数生成数码

        random_line = str(random.sample(user_Type,Enter_Len)).replace(',','').replace('\'','').replace(' ','').replace('[','').replace(']','')

        f = open('Random_list.txt','a')

        f.write(random_line + br)

        f.close()


else:

    print('单次数量不满足数量,现将数值 * 2 ')

    #这是未知解决方法的情况下,暂时的折衷办法,实在脑子不好用,想不出来

    for random_x in range(0,get_nums):

        #随机数生成数码

        random_line = str(random.sample(user_Type*2,Enter_Len)).replace(',','').replace('\'','').replace(' ','').replace('[','').replace(']','')

        f = open('Random_list.txt','a')

        f.write(random_line + br)

        f.close()

print('处理完成,程序执行退出操作!')




©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容