surepj 发表于 2021-12-9 10:03

【Python】-初学笔记-随机验证码函数封装和调用

初学函数的定义和调用。
用户输入一个验证码长度,程序输出该长度的随机字符。

这是在一个程序里定义和调用。
import random

def yanZM(p1):
    str1 = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    code = ''
    for i in range(p1):
      index = random.randint(0,len(str1) - 1)
      code += str1
    return code

p1 = int(input('请输入验证码长度:'))

result = yanZM(p1)

print(result)

http://inews.gtimg.com/newsapp_ls/0/14279569820/0
程序大致运行路径图

--------------------------------------------------------------------------
还可以将函数单独一个py文件,在需要的文件中调用即可。(两个文件在同一目录下)
如函数文件:yanZM_py_file.py
import random

def yanZM(p1):
    str1 = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    code = ''
    for i in range(p1):
      index = random.randint(0,len(str1) - 1)
      code += str1
    return code

如调用文件:yanZM_调用.py
from yanZM_py_file import yanZM

p1 = int(input('请输入验证码长度:'))
result = yanZM(p1)
print(result)

kk159 发表于 2021-12-9 11:12

import string
import random

def getCode(n):
    str=string.digits+string.ascii_letters
    code=''.join(random.sample(str,n))
    return code

surepj 发表于 2021-12-9 12:17

kk159 发表于 2021-12-9 11:12
import string
import random



原来还有这样的方法{:1_921:}
感谢

云飞扬1 发表于 2021-12-9 15:18

每天一个小例子,感谢分享

青衫桑 发表于 2021-12-10 22:45

确实是生成了,但是还可以改进,比如以这个为基础生成图像验证码

Domanca 发表于 2021-12-12 21:11

kk159 发表于 2021-12-9 11:12
import string
import random



这个n最大值只能是26*2+10,并且不会出现重复字符

pretybin 发表于 2021-12-12 21:50

每天一个小例子,感谢分享

kk159 发表于 2021-12-12 22:35

Domanca 发表于 2021-12-12 21:11
这个n最大值只能是26*2+10,并且不会出现重复字符

想重复,那定义字符存放list,再choice取。
个数就循环获取即可!

醉红尘0 发表于 2021-12-13 13:58

import string
import random
def getcode(n):
    put_str = ""
    for i in range(n):
      my_str = string.digits + string.ascii_letters
      put_str += ''.join(random.sample(my_str, 1))
    return put_str


修改了一下,现在可以无限长度,字符也可以重复了

tobyong 发表于 2021-12-17 15:35

感谢分享,学习中。
页: [1]
查看完整版本: 【Python】-初学笔记-随机验证码函数封装和调用