python3_生成随机数字和随机字符串
数据科学必备在Python中生成随机数据详解 - 代码天地 (codetd.com)
(15条消息) python生成随机数、随机字符、随机字符串_哈工大的许政的博客-CSDN博客_python 随机字符串
(15条消息) Python生成随机字符串并保存到TXT文档中_S.Gerrard的博客-CSDN博客_python随机生成文本
(15条消息) Python中产生随机数_章丘的博客-CSDN博客_python生成随机数
1、生成随机数
(1)生成随机整数:
import random num = random.randint(1, 50) # 闭区间 print(num)
(2)生成随机偶数:
import random num = random.randrange(0, 101, 2) # 左闭右开区间,取0-100的整数 print(num)
(3)生成随机浮点数:
import random num = random.random() # 生成0-1之间的随机浮点数 num2 = random.uniform(1, 10) # 生成的随机浮点数归一化到区间1-10 print(num) print(num2)
2、生成随机字符
import random alphabet = 'abcdefghijklmnopqrstuvwxyz!@#$%^&*()' char = random.choice(alphabet) print(char)
3、生成随机字符串
(1)生成指定数量的随机字符串
方法1:
import random alphabet = 'abcdefghijklmnopqrstuvwxyz!@#$%^&*()' characters = random.sample(alphabet, 5) print(characters) #['d', 'q', '@', 'u', 'e']
方法2:
#数字+字母+符号 def getRandChar(n): l = [] #sample = '0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*()-+=.' sample = random.sample(string.ascii_letters + string.digits, 62)## 从a-zA-Z0-9生成指定数量的随机字符: list类型 sample = sample + list('!@#$%^&*()-+=.')#原基础上加入一些符号元素 for i in range(n): char = random.choice(sample)#从sample中选择一个字符 l.append(char) return ''.join(l)#返回字符串
(2)从a-zA-Z0-9生成随机字符串
import random import string value = ''.join(random.sample(string.ascii_letters + string.digits, 8)) print(value) #CLJ7vWBd
(3)随机选取一个元素
import random table = ['剪刀', '石头', '布'] print(random.choice(table)) #石头
(4)随机选取两个元素
import random table = ['剪刀', '石头', '布'] print(random.sample(table,2)) #['剪刀', '布']
3、将序列顺序打乱
import random a=[1,3,5,6,7] random.shuffle(a) print(a) #[6, 7, 5, 3, 1]
import random import string num = 1 while num < 100: username = ''.join(random.sample(['0','1','2','3','4','5','6','7','8','9','z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'],5)) password = random.randint(10000,99999) txt= str(username) + "," + str(password) + "\n" num +=1 with open("user.txt","a") as f: f.write(txt) print(num)
生成数据量比较大的随机字符串:
import random seclength = 4000 def contextRandom(): global ItemVale global ItemLen alphabet = '1234567890!@#$%^&*abcdefghijklmnopqrstuvwxyz@1234567890' * 100 random_len = random.randint(1, seclength) print('随机值:{},type:{}'.format(random_len,type(random_len))) ItemLen = random_len + 31 print('>>>secStore 随机长度是:{}'.format(ItemLen)) ItemVale = ''.join(random.sample(alphabet, random_len)) + '123456@jodie_sec_write_read_del' print('>>>secStore 随机内容是:{}'.format(ItemVale)) return ItemLen,ItemVale contextRandom() """ 随机值:2813,type:<class 'int'> >>>secStore 随机长度是:2844 >>>secStore 随机内容是:9020ec^b&81td0yhlt@&6422@xu0qx8v@725m@vt6l7q1z488o^uvqkjfvop137*^w1q4@8@1p2b!69gub6s@th0l@553j9i^422$iz@x3g7vz1gh9td7r@&#g8^p84s@54x4*lpflya%8#6!p*gk085sl5u&@uwbj6697xwc6222^hxts5guz70#!rd0w@hn6ys!!4ri1798z4n1@!@dx5b8qjxbtxkn74%44p*cx4r5^@1s65b@ax2q7lx1zavt0&*z40&m$2a!59511076w15c5f27os7k5nj2uenvx2l8^0$^0gddjfm#3gbj9ogj1d1woy*msumh#vgd9y2rtcyk&3u5jf8vz%o05&c9l$9vynh$!df398@4b@566980bre6%paevy97e36rpj97^i@peoq*4s1o9c84*5@22z6@m391jb1vu2cy7314#ti%b%z@%7ealb%@3%2sa@!!4vfwjbw9&82k98ldvfn77h6xnbo96k5*1r5@g68&#sp046s&q3dhx&11zt1et3mf008aaa02x1$5v$h0397qmj83%fec7jq0jd82180sst2b^m$@nd6pcal#$6412%uh9%c**6aozqy0ov1ao0@c07ra7b^fu%264ubk2tv100og1ovv8b%qwr^rx9637sm^27^6^x*@pi*35oeqlmxhq@m%2@43663ifr426h1yz7rf39@cya9$8c$t%9b0791ke92pq7527b891&!685rk77qternq8!2akdl%@hjhm521d$1ik3h@vxa7di20553kb&1huv6##n6o736py#ky41jdp3&be02@mp09td2c2@a805ku6gtb9wz#8pm26$4#9ai5p#v0#9xfg5m4!2k2x41k2r52@gbuv31yoexdnsqn30ew4e65hg%5q49^*60y70l4rvk9i1p6984583o1h48a$89y1h#w4g41*z&nfmz156bsm!az4g342@3i0a17fgk$ft@2$358@4g9v751g^e1%tdz468q*8w&edhn@4rmf29jdq1s%56@p0i$5!oa&!*6$@81f53$qbg@f@27z22ynrduth6nld295cv0alu81ac9axi%3^%^6aqkt3w0b3j^sx9623vctg4o*9m4!qa@^dt@!ny355%n932@!7t4zpi@%y293&65n@9yv3ujv!5$4lfqx9o$nm4jd&dz042i914k9r5x6!p6ge@t105zf83o#&63c&bs!c@l@^94bn@fx!w3@9wyv%^*pafor4#8fdv%^3x4!0!598x@8n87$i83fblyj9jg59rgo9#75j7233lqabk8e@2#%1mnxtqc9lr1g@mki^#un7590%kd38xll772qenm@*l1h26*57rba4yh&y8k0&eti1vdjc!0!7f0shsz!k3b%3@47*70$zncc5ae%soqe$um94#25u%s97md4rjag8@09az69#@30^aj4zn8i*8u4!v124l$29#jfa@%&f@q4!b3qlp*ly0xu124@35610o5d4ool02@86i3nde0p23ldji4z7^78n9m4d#g$fqf76zk3mrdfi%u1@olv8qk6736#8xmyf@@qhf&66ub#u!ec89vt&njbx57c$y11fhz0nc9!n9p05i5w^wwa7fzf6y!b4q!c*^7o@99j^o344320zjz^fv57a05zesse2239p3pl@4t46zz586ajb3mm6i67un$*0q8#38oy$yw46c0v^51p#928*a$@r1uvt533dhj2&pgan!85^lq0sl38lf*609$4039884r06t##vd03ul1o7ppf^g4tif87o@35&p93e$6&p7qwytekv72gdrm*z^$p@1m757y!24#4m9j5d0g2eps6g0#o2fpf*&%ze1jxf#4s3!tvn41%^!@67qs*0a1z93@@9srarioxe$$36wjuwx601fpwju97!onb3&yz1lnm2@@&t345&7o^84dk2j#72oc@@79hkw02!z#7l0b4q4x3to85g8%9s2z46cjrix31y@c1nk6i%8mz0c0z4613t*l*@06p^*%3x*td6&l6kn3@$i6wh%m0i1f894zi17e!c3z241027owv3mvbp&@iol%2kvn1c91g2@x#*73n%yb^@k85el375ne5*ku4#9to1^di7&r$j!kf5mt9@u02%*nducc3efhj8y$6!th$n#wiufyljwz#8d%m9jn@x7mmrm*192p##29r@p@7rh0p258z@5e9@@wan2h#57z8206g2^yq9nyomyl@j!5x6skk9f2b5az5cu5#^k&9710$2y83i^6w131w@skz7e9$lbj9j6m5w9dstf&^765043a9xdelogj7!^q6juf@$@r98!ic!it52bygl1nl#5%wr245msqijr^99^%!4nfkq57yc*5zyl7o$@60&i624sl73g860p2*zvxzf@02owj$5las3^8374e6@&z1$u5wq%#5q03@u!5jc*h135^a!b0a&9i@1^fp07*2p%t*l$*zok!rb6cf06z0!taq622d#qxr$5t82i7okl8y0i9j0cjave091v9%1rrhhu08yd0o90ump8pq6ca0l0422bzt45z73z51^96hp191uk07189027&0jlgk24!i5bc5339@3j1v^*es7g0n5ov!$5j%^zg!agn!6^8s6ul*4u9t%f94u6k17r$046^4z8ot36ce59qcs8u^7x&j790002qg0gz70%hnniq1g1*9$bs6jux9bif1$743^qjmb!v!4lnhet@dew7g@*eagfdcpu71u7kdh14@1l4jqflcm&w8hl05r6m30h5*36wq9%8amqd123456@jodie_sec_write_read_del """
由于字符串比较长,不能直接执行echo str > 1.txt直接写到模块,先在写到本地的文件再导入到模块:
import random import os def log(): global logPath log_tmp = r'\Logs' logPath = os.getcwd() + log_tmp if not os.path.exists(logPath): # 判断当前路径是否存在,没有则创建new文件夹 os.makedirs(logPath) return logPath def AES_128_cbc(): global aes_128_cbc path_tzload = '/mnt/usrdata/test' log() # 定义加解密明文内容 plaintext_aes_128_cbc = '' alphabet = '1234567890!@#$%^&*abcdefghijklmnopqrstuvwxyz@1234567890'*100 random_len = random.randint(1,seclength) print('>>>AES_128_cbc 随机长度是:{}'.format(random_len + 26)) plaintext_aes_128_cbc = ''.join(random.sample(alphabet, random_len)) + '123456@jodie_aes_128_cbc' print('>>>AES_128_cbc 随机加密明文是:{}'.format(plaintext_aes_128_cbc)) context = open(logPath + "\\" + "1.txt", "w+") context.write(plaintext_aes_128_cbc) # context.flush() context.close() cmd = r'adb push {}\1.txt {}'.format(logPath,path_tzload) print('cmd:-{}-'.format(cmd)) os.popen(cmd).read() AES_128_cbc() ''' >>>AES_128_cbc 随机长度是:2448 >>>AES_128_cbc 随机加密明文是:gphd44$i806ow3&j#b%!fuwc^7917m4y07b9zy@25q836$4s!r4ae13dl#g%ni1*487k1^%pp#e!@@!$7n2u45nw87v176ln@j0c&c72%99kfb236z7uwz819@p0#5jf&p3o^m&cu9z2@@0ci605x4%%12nzaait6c6nn#^@*zm33vk*4985z7x*x7dmqp9t2w!*ri5wh4@@2b!jo59fd!93p13f@v593c7n26z9etc71^v61pm8h19j41n^&873%9ld0$3k7@j@@04$hq9@f7qusd5%%$^2y5oeuc46k&a56!wx8vgmfa&1zlf725n^$9b7lx@oi2r5878m^l*d7t24$q9d393r$q#eerftp2&5169pzy#@614ke5@xkesh&8%6r351m01ng5^x%ey9$7uz&134re@@*jswsg6w34a8g**iq4g!i8&0ma1c6l96c@r2519acd5rl%a7^2bv!21dntw44bt82e^8v8q%1jx0*i59yv@1@h93$#kpmbq7^&o1f1523sxjpd^2*c@i8qj016bxq&cl$a@kc63fin92*^q6yx*b9t4kc#q5&o@6snsl4uhth@55j2*270ug3vi254&yf%9j7zwq0ec681q!u4@2bm^5b2jk4!!w4i1$@kqe^kpp@v@dr#6wxr@c53#7!i4&&1081717w93ck!h%w&w586@@^p$f563qu5x%&k7@1c*@93u5zi#*rz5g!oh%5mld%ybl^i&55a8i21i8abvr#03gi9&22qds9r7c4swz6o73*hr@53se#n81%uuddukp4acjem0w^5^ur!*x2vdx%745y83yb$9g004g6q9eq2lg0ri#m@k*8%5oixq@90^@0ed*f6ykm$#1@$w4v2tc3xatlm6or8l297z^0$*6@aqlcf36^e8a6uh$8hc53h2@a1z8uy$s4!j4#63*&2*e4e41$9eu#h^8953!@$@1y4%4$y2z3o574oah0952h6q32epl%$0r1p2m7!1o9&p%igr0m3@5o536vl@148ug9&2ah79w3x67on3ffd828t7ab5xowe@%u!u82n23qv7ygp1b*t^e^s%0u!kj&kpk#u4mzq2z1x3^421uj7v$3l@365yy&b#1v#v3g$du@3z461*575$687phdzqv*^v01308yqr4qsb@0@38&rd00&hw0lmi1azgjo@6zl84!dx*088^pbo4g931sag@8^6j&ps88j6odv@0g#82e3xda0@dj710l^f1b^43wyx@f%o93*3wnaf@w014c5dldyh8956ig6l48u8c@4&ol6z&b#2y5116@795763w229m3c227!*#*x2nv#*d7ye1183e!m4i7hw49mj#8i@rt517r4b#unh9bwyrpouhu@3^gd2y9bh3n%o3#1@iatui$43zyt#g$v2xxy9^1^ct7rq2@!2qkxfa23rkvxdb&be74lxd5yxz1#2%p538h92y8xfw6@5n@l@8991t2$7@d5s9j1960e5xmj6f^kl7%zy6#7m4qnu2bnw&sb&q8t6c501&m81bik5w3qv03hf237%#py#ojrsxbf2i*0i68651184p4n8krd%9$t#sr81i3n4t3!85814103&s&q@a1h0cf3g6fv@*pm1802829@%7@qq198119lvdu305d*ic^3v4rdclm9244cz2tr0tl%0d858240gdm*got*8k10&vm6r!@*20%784@#6x03b5!914x!5nv@wwo@095&otrn00yx%0ndij5yfg*0re8211yhcx0nki3rb30%j8j^6l!x3^05@vc9^jmk@25d*5e51z!*n3462e87189mfupxb2w*kv4*9f@fjkpq@5m^pt9jetq69$m9!y!0e9wi358lywr#j9umj2as1lkxnnljqp0*qtkj$md67#4zp^4&qk0b0006i1747j99*jwhp2cp4m93sf810bzr0#kmy0410bkch7w^k$g9h7pg67*$$4u95ce0%*0sm#p4o1&nzw&!7f1fuo23*1ws0*z14$bx4weuq7qpf6&ua%!x0#s&65v7#o6#3f2r85s6@17j@n6ya$a#5!3ow7l%570hhs&&246y7^zgayz3wwm@537@9*v^5$nt644dqmqq*mxuqomi49y9ou6xzw69d@4363j$32^@9@234@57385gtqv40lk02la%v93713vjt1%b8j9v7t#a0hlda9z3i90954mcrs3lc23e!egl#l9q504^fq7pl%#kip3aija64wr#r@!6h5po*1#i7984$o@@gs&c996n@59f$f2jk31137z0y54f6h288qbxll2#68e976f3!ezy0i0299z&2pur0l@&rb5^98g00arw9us4953yscadolvu2@547q98iidk&!i&7qp59o1@ag57w3g0nd#7u26anw65ih#w123456@jodie_aes_128_cbc cmd:-adb push E:\python_example\生成随机字符串\Logs\1.txt /mnt/usrdata/test- 149 KB/s (2446 bytes in 0.015s) '''
生成随机密码
import random def get_upper(): ''' 生成大写字母 :return: ''' count = random.randint(1, 3) return random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ', k=count) def get_special_char(): ''' 生成特殊符号 :return: ''' count = random.randint(1, 3) return random.choices('!@$%^&*()_+~', k=count) def get_lower(count): ''' 生成小写字母和数字 :param count: :return: ''' string = 'abcdefghijklmnopqrstuvwxyz0123456789' return random.choices(string, k=count) def generate_password(length): ''' 生成指定长度的密码 :param length: :return: ''' if length < 6: length = 6 lst = [] upper_lst = get_upper() # 大写 special_char = get_special_char() # 特殊字符 lst.extend(upper_lst) lst.extend(special_char) surplus_count = length - len(lst) lower_lst = get_lower(surplus_count) lst.extend(lower_lst) # 将顺序打乱 random.shuffle(lst) return ''.join(lst) if __name__ == '__main__': print(generate_password(8)) print(generate_password(5)) print(generate_password(12))