鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

[技术交流] Python:每日一题 111

[复制链接]
发表于 2017-10-9 20:57:48 | 显示全部楼层
  1. def f():
  2.         chars = ['3','4','6','7','8','9','A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','T','U','V','W','X','Y']
  3.         result = ''

  4.         for i in range(12):

  5.                 result += chars[r.randint(0,27)]
  6.         return result
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-9 21:25:33 | 显示全部楼层
import random
random0 = ('3','4','6','7','8','9','Q','W','E','R','T','Y','U','P','A','D','F','G','H','J','K','L','X','C','V','B','N','M')
random1 = random.choice(random0)
random2 = random.choice(random0)
random3 = random.choice(random0)
random4 = random.choice(random0)
random5 = random.choice(random0)
random6 = random.choice(random0)
random7 = random.choice(random0)
random8 = random.choice(random0)
random9 = random.choice(random0)
random10 = random.choice(random0)
random11 = random.choice(random0)
random12 = random.choice(random0)
print(random1 + random2 + random3 + random4 + random5 + random6 + random7 + random8 + random9 + random10 + random11 + random12)

#求简单方法,感觉我的好累赘啊!新手一个

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-9 21:36:41 | 显示全部楼层
  1. # python每日一题(111):实现12位随机码。
  2. import random
  3. invitation = "346789CDJMNOPBHUVIWXEFGAQRSTYZ"
  4. code = ""
  5. loop = 12
  6. while loop:
  7.    
  8.     temp = random.choice(invitation)
  9.     code += temp
  10.     if code.count(temp) == 1:
  11.         loop -= 1
  12.     else:
  13.         code += code[-1]
  14. print(code)
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-9 21:59:03 | 显示全部楼层
import random
str1 = '346789ABCDEFGHJKLMNPQRTUVWXY'
str2 = ''
for i in range(0,12):
    str2 += random.choice(str1)
print(str2)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-9 22:03:02 | 显示全部楼层
  1. # python每日一题(111):实现12位随机码。
  2. import random
  3. invitation = "346789ABCDEFGHJKLMNPQRTUVWXY"
  4. code = ""
  5. loop = 12
  6. while loop:
  7.     temp = random.choice(invitation)
  8.     code = code + temp
  9.     if code.count(temp) == 1:
  10.         loop -= 1
  11.     else:
  12.         code = code[:-1] + ""
  13. print(code)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 09:10:33 | 显示全部楼层
解题思路

1.由数字和字母组成
2.随机生成
3.数字:没有0,1,5 ,字母:没有o,z,s
4.字母为大写

  1. import string
  2. from random import *
  3. characters = string.ascii_letters.upper()  + string.digits
  4. password = "".join(choice(characters) for x in range(randint(8, 16)))
  5. print password
复制代码


能力理解范围内 只能实现这个。。。 后续补充学习

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 10:01:05 | 显示全部楼层
hh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-10 10:36:08 | 显示全部楼层
import random

String = 'abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY346789'
passwd = ''.join(random.sample(String, 12))
print(passwd)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-10-10 15:35:31 | 显示全部楼层
自己
  1. import random
  2. def generate():
  3.         str1 ="346789ABCDEFGHJKLMNPQRTUVWXYZ"
  4.         gener = random.sample(str1,12)
  5.         string =''
  6.         for each in gener:
  7.                 string +=each
  8.         return string
复制代码
只能用笨的暴力方法了,

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-10-10 16:14:13 | 显示全部楼层
  1. from random import randint
  2. def password():
  3.     list1 = ["3","4","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","T","U","V","W","X","Y","Z"]
  4.     str1 = ''
  5.     i = 0
  6.     while i<12:
  7.         i+=1
  8.         str1 += list1[randint(0,28)]
  9.     print(str1)
  10.    
  11. password()
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 19:47:31 | 显示全部楼层
ddddddd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-11 15:44:25 | 显示全部楼层
from random import Random
str = ''
chars = 'ABCDEFGHJKLlMNPQRTUVWXY346789'
length = len(chars) - 1
random = Random()
for i in range(12):
    str+=chars[random.randint(0,length)]
print(str)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-11 16:32:17 | 显示全部楼层
import random

def RandomMsg():
    tmp = random.randint(0,9)
    tmp2 = chr(random.randint(65,90))
    s = str(tmp) + str(tmp2)
    return s

s3 = ""
while len(s3)<12:
    s2 = random.choice(RandomMsg())
    if s2 in ['1','I','0','O','5','S','2','Z']:
        continue
    s3 += s2

print(s3)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-11 19:06:32 | 显示全部楼层
import random
num = random.choices("346789ABCDEFGHJKLMNPQRTUVWXY",K=12)
for i in num:
        print(i, end='')

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3 k要小写

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-11 19:08:37 | 显示全部楼层
  1. import random
  2. num = random.choices('346789ABCDEFGHJKLMNPQRTUVWXY',k=12)
  3. for i in num:
  4.     print(i,end='')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 11:39:56 | 显示全部楼层
from random import randint

def activationCode():
    sourcestr = '346789ABCDEFGHJKLMNPQRTUVWXY'
    activecodelist = []
    for i in xrange(12):
        inx = randint(0, 27)
        activecodelist.append(sourcestr[inx])
    return ''.join(activecodelist)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 21:46:19 | 显示全部楼层

万一你的这个验证码中有某个字母重复,你这个不就奔溃了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-13 14:07:29 | 显示全部楼层
  1. import string, random
  2. s = (string.digits+string.ascii_uppercase)
  3. n=[d for d in s if d not in ['1','I','2','Z','5','S','0','O']]
  4. print(''.join(random.choice(n)for i in range(12)))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-13 15:25:09 | 显示全部楼层
  1. import random as r
  2. leng=r.randint(8,14)#验证码的长度为8—14个单位长度

  3. c=[3,4,6,7,8,9,'A','B','C','D','E','F','G','H','J','K',
  4.    'L','M','N','P','Q','R','T','U','V','W','X','Y']

  5. i=0
  6. result=''
  7. while i<leng:
  8.     t=r.choice(c)
  9.     result+=str(t)
  10.    
  11.     i+=1
  12. else:
  13.     print(result)
  14. ===================== RESTART: D:\Python36-32\caogao.py =====================
  15. MAVD9LKK8EWGK4
  16. >>>
  17. ===================== RESTART: D:\Python36-32\caogao.py =====================
  18. 74Y8W3VD
  19. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-17 08:55:20 | 显示全部楼层
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import random
li = []
"""
##生成随机验证码小代码
"""
for i in range(12):   #验证码长度控制
    num = random.randrange(0,4)   #获取随机数字
    if num == 1 or num == 3:       #验证码随机插入数字组合
        temp = random.randrange(1,9)  #去除0
        li.append(str(temp))  #将整形转换为字符串
    else:
        temp = random.randrange(65, 91)
        c = chr(temp)    #十进制转换为字符,参考ASCII表
        li.append(c)
        if c == 'O':     #去除O
            li.remove(c)
result = "".join(li) #列表仅能将字符串进行拼接
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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