鱼C论坛

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

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

[复制链接]
发表于 2017-10-9 15:47:42 | 显示全部楼层
本帖最后由 qwc3000 于 2017-10-9 15:52 编辑

import random
# 是字母进入此子程序
def isLetter():
    # 随机产生一个65--89的数字
    litter=random.randint(65, 89)
    # 判断是不是 79 83  是重置
    while litter==79 or litter==83 :
        litter = random.randint(65, 89)
    # 将此数对应ASCII码中的字符 返回
    return chr(litter)
#是数字进入此子程序
def isNum():
    num=random.randint(49, 57)
    while num==50 or num==53 :
        num = random.randint(49, 57)
    return chr(num)
# 定义一个邀请码的字符串
Invitation_code=""
# 定义个变量 随机置数0,1  用来判断当前位置是字母还是数字
tmp=random.randint(0,1)
# 循环12次  生成邀请码
for i in range(1,13):
    if tmp==1:
        Invitation_code+=isNum()
    else:
        Invitation_code+=isLetter()
    tmp=random.randint(0,1)
print(Invitation_code)

评分

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

查看全部评分

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

使用道具 举报

发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 07:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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