python练习册 0002随机生成验证

时间:2024-09-24 08:33:14

这个题需要用到random库的方法,不用就会忘,暂把random库的常用方法贴出来

import random
import string # 随机整数
# randint(a, b),生成a~b之间的随机数a<=b
# c_int = random.randint(100, 1) 错误
a_int = random.randint(10, 20)
b_int = random.randint(20, 20) # randrange(a, b, c)以c为步长生成a~b之间的随机数
a_range = random.randrange(10, 20, 3) # random.random() 随机浮点数 # 随机浮点数
# uniform(a, b),生成a~b之间的随机浮点数
a_uniform = random.uniform(1, 100) # 随机字符
# random.choice('abc')
a_choice = random.choice('abc') # 多个字符中选取特定数量的字符
# random.sample('abcdef', 3)
# 返回值为list
a_sample = random.sample('abcdef', 3) # 从多个字符中选取特地数量的字符组成字符串
# Python3中移除了string.join()方法,使用全局的join()
a = ''.join(random.sample('abcbdjakbsdjkb', 3)
---------------------
作者:RJzz
来源:****
原文:https://blog.****.net/jrrrj/article/details/81039124
版权声明:本文为博主原创文章,转载请附上博文链接!

以下是题解代码

import random
import string def generate(length, num):
file = open('./code.txt', 'w')
for i in range(num):
s = ''.join((random.sample(string.ascii_uppercase + string.digits, length))
file.write(s+“\n”) generate(10, 20)

没看懂string,ascii_uppercase+string.digits的含义但是能猜个大概,而后查的官方文档,自己英语也不是太烂啊,哈哈

whitespace = ' \t\n\r\v\f'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_letters = ascii_lowercase + ascii_uppercase
digits = ''
hexdigits = digits + 'abcdef' + 'ABCDEF'
octdigits = ''
punctuation = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
printable = digits + ascii_letters + punctuation + whitespace

哈哈哈。补上常用的string的属性。

最后还有join方法,list转str

先看一下str>>list

str1 = ""
list1 = list(str1)
print list1 str2 = "123 sjhid dhi"
list2 = str2.split() #or list2 = str2.split(" ")
print list2 str3 = "www.google.com"
list3 = str3.split(".")
print list3
 输出结果
['', '', '', '', '']
['', 'sjhid', 'dhi']
['www', 'google', 'com']

最后list转str

str4 = "".join(list3)
print str4
str5 = ".".join(list3)
print str5
str6 = " ".join(list3)
print str6
输出结果
wwwgooglecom
www.google.com
www google com

参考链接

https://blog.****.net/roytao2/article/details/53433373

https://blog.****.net/jrrrj/article/details/81039124