【python】生成*不重复*随机n<=10位数字与字母组合(创建随机)

1.环境

windows/ubuntu
python3.6

2.实现

下面代码包含:

1)随机数字+字母组合

2)随机字母组合

3)随机数字组合

4)随机不重复数字+字母组合

5)随机不重复字母组合

6)随机不重复数字组合

# -*- coding: UTF-8 -*-
'''
@author: mengting gu
@contact: 1065504814@qq.com
@time: 2020/11/3 下午9:04
@file: random_num.py
@desc:
    Get the combination of n numbers and upper and lower case letters.
'''

import random

n = 10

def v_code_nums_letters(n=6):
        """
            Returns:
                ret:random six num and letter
        """
        ret = ""
        for i in range(n):
            num = random.randint(0, 9)
            letter = chr(random.randint(97, 122))  # 取小写字母
            Letter = chr(random.randint(65, 90))  # 取大写字母
            s = str(random.choice([num, letter, Letter]))
            ret += s
        return ret

def v_code_letters(n=6):
        """
            Returns:
                ret:random six letter
        """
        ret = ""
        for i in range(n):
            letter = chr(random.randint(97, 122))  # 取小写字母
            Letter = chr(random.randint(65, 90))  # 取大写字母
            s = str(random.choice([letter, Letter]))
            ret += s
        return ret

def v_code_nums(n=6):
        """
            Returns:
                ret:random six num
        """
        ret = ""
        for i in range(n):
            num = random.randint(0, 9)
            s = str(random.choice([num]))
            ret += s
        return ret


def v_code_nums_letters_norep(n=6):
        """
            Returns:
                ret:random six num and letter
        """
        num = random.sample(range(0, 10), n)
        letter = random.sample(range(97, 122), n)  # 取小写字母
        Letter = random.sample(range(65, 90), n)  # 取大写字母
        ret = ""
        for i in range(n):
            s = str(random.choice([num[i], chr(letter[i]), chr(Letter[i])]))
            ret += s
        return ret

def v_code_letters_norep(n=6):
        """
            Returns:
                ret:random six letter
        """
        letter = random.sample(range(97, 122), n)  # 取小写字母
        Letter = random.sample(range(65, 90), n)  # 取大写字母
        ret = ""
        for i in range(n):
            s = str(random.choice([chr(letter[i]), chr(Letter[i])]))
            ret += s
        return ret

def v_code_nums_norep(n=6):
        """
            Returns:
                ret:random six num
        """
        num = random.sample(range(0, 10), n)
        ret = ""
        for i in range(n):
            s = str(num[i])
            ret += s
        return ret

print("v_code_nums_letters result: " + v_code_nums_letters())
print("v_code_letters result: " + v_code_letters())
print("v_code_nums result: " + v_code_nums_norep())

print("v_code_nums_letters_norep result: " + v_code_nums_letters_norep())
print("v_code_letters_norep result: " + v_code_letters_norep())
print("v_code_nums_norep result: " + v_code_nums_norep())

3.结果

运行:

python random_num.py

得到下面结果: 

v_code_nums_letters result: RCJexk7N6W
v_code_letters result: SuTvHHomgJ
v_code_nums result: 0089680583
v_code_nums_letters_norep result: ok0lEBTnh9
v_code_letters_norep result: hUqFiBYvcK
v_code_nums_norep result: 2061734859

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这里提供一种Python代码实现的方式: ```python import random import string # 定义生成随机密码的函数 def generate_password(): numbers = random.sample(range(0, 10), 5) # 随机生成5个数字 letter = random.choice(string.ascii_lowercase) # 随机生成1个小写字母 password = ''.join([str(num) for num in numbers]) + letter # 组合生成密码 return password # 生成10随机密码 passwords = set() # 使用set集合保证密码不重复 while len(passwords) < 10: password = generate_password() passwords.add(password) # 打印生成10随机密码 for password in passwords: print(password) ``` 输出示例: ``` 1k6085 2f7503 0y2498 5z3420 7q9416 3x8960 9j5804 4v6301 8m4302 6n7509 ``` ### 回答2: 要生成10个满足条件的6随机密码,其中包含1个小写字母和5个数字,并且数字与密码不重复,可以按照以下步骤进行: 1. 建立一个空的列表,用于存放生成的密码。 2. 随机选择一个小写字母作为密码的第一个字符,并将其添加到列表中。 3. 生成一个随机的5数字,并将其添加到列表中。 4. 检查列表中的密码是否已经重复。如果已经重复,则重新生成一个新的5数字,直到生成数字与列表中的密码都不重复为止。 5. 重复步骤3和4,直到列表中有6个元素为止。 6. 将列表中的6个元素连接起来,形成一个6密码,并将其打印出来。 7. 重复步骤2到步骤6,直到生成10个满足条件的密码。 以下是示例代码实现: ```python import random def generate_password(): password = [] # 生成小写字母作为密码的第一个字符 first_char = chr(random.randint(97, 122)) password.append(first_char) # 生成5个不重复数字并添加到密码中 while len(password) < 6: digit = random.randint(0, 9) if digit not in password: password.append(digit) # 随机打乱密码顺序 random.shuffle(password) # 将密码转换为字符串并返回 return ''.join(map(str, password)) # 生成10个满足条件的密码并打印 for _ in range(10): password = generate_password() print(password) ``` 以上代码可以随机生成10个满足条件的6密码,并将其打印出来。每个密码包含1个小写字母和5个数字,且数字与密码均不重复。 ### 回答3: 生成10个6随机密码并打印的过程如下: 1. 创建一个空的密码列表 password_list 用于存储生成的密码。 2. 创建一个数字集合数字集合 numbers_set 包含所有0-9的数字。 3. 循环10生成密码: a. 从数字集合 numbers_set 随机选择一个数字 num ,并将其从数字集合中移除 numbers_set.remove(num)。 b. 从数字集合 numbers_set 随机选择一个数字 digit ,并将其从数字集合中移除 numbers_set.remove(digit)。 c. 从数字集合 numbers_set 随机选择一个数字 digit1 ,并将其从数字集合中移除 numbers_set.remove(digit1)。 d. 从数字集合 numbers_set 随机选择一个数字 digit2 ,并将其从数字集合中移除 numbers_set.remove(digit2)。 e. 从数字集合 numbers_set 随机选择一个数字 digit3 ,并将其从数字集合中移除 numbers_set.remove(digit3)。 f. 从数字集合 numbers_set 随机选择一个数字 digit4 ,并将其从数字集合中移除 numbers_set.remove(digit4)。 g. 从数字集合 numbers_set 随机选择一个数字 digit5 ,并将其从数字集合中移除 numbers_set.remove(digit5)。 h. 从字母集合中随机选择一个小写字母 letter 。 i. 构建密码 password 为 letter + digit1 + digit2 + digit3 + digit4 + digit5。 j. 将密码 password 添加到密码列表 password_list 中。 4. 打印密码列表 password_list 中的所有密码。 其中数字集合和字母集合是预先定义的,数字集合包含0到9的数字字母集合包含所有小写字母。在每次生成密码的过程中,通过随机选择数字字母来构建密码,并确保数字和密码不重复,最终将生成的密码添加到密码列表中,并打印输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wait a minutes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值