鱼C论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 214|回复: 4

[已解决]random模块里的函数做一个随机生成码问题

[复制链接]
最佳答案
0 
发表于 2019-5-16 01:09:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
import random
def generate(check_num=4):
     temp=[]
     for i in range(check_num):
          choice=random.randint(1,3)
          if choice==1:
               temp.append(random.choice("0123456789"))
          elif choice==2:
               num=random.choice(65,90)
               temp.append(chr(num))

          elif choice==3:
               num=random.choice(97,122)
               temp.append(chr(num))
     return temp
temp1=generate()
print("生成4位随机验证码:",temp1)
temp2=generate(5)
print("生成4位随机验证码:",temp2)
temp3=generate(5)
print("随机码",temp3)

错误翻译:
选择列表需要定位(2)是给定的,但3题元
不太理解这个问题
最佳答案
2019-5-16 01:34:30
本帖最后由 jackz007 于 2019-5-16 02:37 编辑

random.choice(v) 参数 v 应该是一个序列(字符串、元组或列表),与楼主在代码中给出的参数不符,所以,下面两句需要修改:
  1.                num=random.choice(65,90)
  2. . . . . . .
  3.                num=random.choice(97,122)
复制代码

      应该改用 random.randint() 才对:
  1.                num=random.randint(65,90)
  2. . . . . . .
  3.                num=random.randint(97,122)
复制代码

      另外,函数 generate() 返回的是列表,打印出来不美观
  1. def generate(check_num=4):
  2. . . . . . .
  3.      return temp
复制代码

      建议改成返回字符串
  1. def generate(check_num=4):
  2. . . . . . .
  3.      return '' . join(temp)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
493 
发表于 2019-5-16 01:34:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-5-16 02:37 编辑

random.choice(v) 参数 v 应该是一个序列(字符串、元组或列表),与楼主在代码中给出的参数不符,所以,下面两句需要修改:
  1.                num=random.choice(65,90)
  2. . . . . . .
  3.                num=random.choice(97,122)
复制代码

      应该改用 random.randint() 才对:
  1.                num=random.randint(65,90)
  2. . . . . . .
  3.                num=random.randint(97,122)
复制代码

      另外,函数 generate() 返回的是列表,打印出来不美观
  1. def generate(check_num=4):
  2. . . . . . .
  3.      return temp
复制代码

      建议改成返回字符串
  1. def generate(check_num=4):
  2. . . . . . .
  3.      return '' . join(temp)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1223 
发表于 2019-5-16 09:51:39 | 显示全部楼层
改成num=random.choice((65,90)),下同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
493 
发表于 2019-5-16 10:27:10 | 显示全部楼层
本帖最后由 jackz007 于 2019-5-16 10:35 编辑
冬雪雪冬 发表于 2019-5-16 09:51
改成num=random.choice((65,90)),下同


        他是在整个大写字母和小写字母集里面随机选呀,老大!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
1223 
发表于 2019-5-16 10:49:48 | 显示全部楼层
jackz007 发表于 2019-5-16 10:27
他是在整个大写字母和小写字母集里面随机选呀,老大!

哦,才明白他的想法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2019-8-26 15:01

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表