(11/18)Python100天-第七天_练习2

因为发现
1.每天写code的时间有限
2.之后的练习难度会增加,或许不能都一天内解完
所以想把Title改一下,之后方便回来看。
先以目前的进度为主要标籤试试,有不方便再改~
====
课本:https://reurl.cc/ROvEv6
今天要解决的问题是:
设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成。
函式=>验证码(验证码规则:1.长度固定2.大小写字母和数字)
大写字母=A-Z、小写字母=a-z、数字=0-9
也就是说我需要写一个函式能
1.组合四个变数
2.每个变数可以随机显示A-Z+0-9+a-z
方法一:

from random import randint #使用乱数的整数模组alp='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' #将乱数内容指派给alp这个变数for i in range(0,4): #用for迴圈使这个设定重複四次    i=randint(1,62) #借用刚刚设定的i(就不用再初始化一个变数)乱数每次alp代表的位置    print (alp[i],end="")#每次印出alp位置(重複四次),并且不分行

在写这个方法的时候因为太久没有用random,所以稍微查了一下,结果发现其实random早已提供一个乱数字串的方法,试试看~
方法二:

import random ,stringfor x in range(4):    a=''.join(random.choice(string.ascii_letters+string.digits))    print(a,end="")

(来源:https://tinyurl.com/2gf3qz7h)
出来的结果是一样的,但这位大大的结果更为简洁...又被秀了呜呜
但是在最一开始的时候其实也有想到是不是能用8进位的表示符来代替字母
不过测试的结果好像是不行--
接下来看解答

import random#导入random模组def generate_code(code_len=4):#验证码生成器(默认长度为4)    """    生成指定长度的验证码    :param code_len: 验证码的长度(默认4个字符)#param不知道是什么意思    :return: 由大小写英文字母和数字构成的随机验证码    """    all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'    last_pos = len(all_chars) - 1#最后一个位置&不懂为何要-1?    code = ''    for _ in range(code_len):#默认为4,可在一开始做更改        index = random.randint(0, last_pos)        code += all_chars[index]    return code

感觉大方向跟我的第一个方法是差不多的,只是他间接执行了几种不同的变数,这样做的好处可能是很多地方可以调整,就像自由重训器材,而我原本的解法只能算是史密斯
====
今天很早就把他写完了只是到了晚上才看答案,上了一整天班的我现在真的随时会睡着QQ
所以虽然文章里还有很多不求甚解的部分,但我还是选择pass,等之后再编辑ㄅ


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章