一个非常简单的验证码程序
老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会。还有就是,这次听老师的,把自己的代码添加注释,所以这次把很简单的代码都写上了注释,而且很大白话,不管有没有接触过python的,我相信仔细看了,肯定能看懂。如果看完,再自己尝试着默写出来,那就是更好到了,好了进入正题:
自己写的:
1 __Author__ = "Zhang Peng" 2 import random 3 #导入random模块 4 5 code='abcdefdhigkmlnopqrstuvwxyzABCDEFDHIGKMLNOPQRSTUVWXYZ0123456789' 6 #定义一个验证码的库,赋给变量code 7 8 checkcode='' 9 #定义一个空字符串,赋给checkcode 10 11 count=0 12 #需要对循环进行计数,初始值设为0 13 14 while count<6: 15 #添加一个while循环,当count小于6的时候就会一直循环 16 17 i=random.choice(code) 18 #choice是random里面的一个方法,就是把code里面的值随机取出一个来赋给i 19 20 checkcode+=i 21 #把checkcode+i重新赋值给checkcode,每循环一次checkcode长度都会增加一位 22 23 count+=1 24 #把count+1赋值给count,每循环一次,count都会加1 25 else: 26 #else是while循环的一个用法,就是当count不小于6的时候做什么事 27 pass 28 #我这里写的是,当count不小于6就跳过这个循环 29 30 print(checkcode) 31 #最后打印一下checkcode,这里的checkcode每运行一次都会是不同的值
自己的代码,看着最别扭的就是,自己定义的那一堆code,显得很笨重,下面看看老师给的示例(这个示例,是经过我简单加工后的,老师演示的里面只可以打印出大写字母和数字的6位验证码):
1 __Author__ = "Zhang Peng" 2 import random 3 #导入random模块 4 5 checkcode='' 6 #定义一个空字符串,赋给checkcode 7 8 for i in range(6): 9 #这里一个for循环,是让i在range(6)中循环,每次循环取出 10 # 来的值,赋给i;这里range(6)=(0,1,2,3,4,5) 11 12 current=random.randrange(0,6) 13 #randrange是random中的一个方法,随机从range(0,6)中取一个数出来,赋值给current 14 15 if current<2: 16 #这里用了一个if语句,如果current小于2,做什么事 17 18 checkcode+=chr(random.randint(65,90)) 19 #如果current等于i,randint也是random中的一个方法,chr是python中的内置函数 20 #意思是把数字转换成ascll码表对应的字符,65到90正好对应ascll码中的大写A到大写Z 21 #这句函数意思是chr取出一个字母加上checkcode,重新赋值给checkcode 22 23 elif current >= 2 and current < 4 : 24 #elif,如果current大于等于2,且小于4做什么。 25 26 checkcode += chr(random.randint(97, 122)) 27 # 其他类似于上一条,其中97到122正好对应ascll码中的小写a到小写z 28 29 else: 30 #if的用法,如果current不符合上面条件,做什么事 31 32 checkcode+=str(random.randint(0,9)) 33 #str也是python的内置函数,就是把什么转换为字符串,这里是把0到9的任意一个整数 34 #取出来,加上checkcode,重新赋值给checkcode 35 36 print(checkcode) 37 #最后打印一下checkcode
自己加过过后,感觉添加了一个elif,显的还是有些笨重,希望以后可以研究出更清晰的代码。
欢迎评论,提出宝贵意见,这也是我很有效提高技能的方式。