首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机字符串+数字[4种格式]

随机字符串+数字[4种格式]
EN

Stack Overflow用户
提问于 2022-07-15 19:00:56
回答 2查看 52关注 0票数 -1
代码语言:javascript
复制
for i in range(num):
    code = "".join(random.choices(
        string.ascii_uppercase + string.digits,
        k = 16
    ))

    file.write(f"{code}\n")

这是我编写的代码,随机生成16个字符,我希望输出也是不同格式的。这些是所有的格式:

代码语言:javascript
复制
XX-XXXX-XXXX-XXXX-XXXX -- [18 chars] Letters + Numbers [All capital]
XXX XXX XXXX -- [10 chars] Only Numbers
XXXX XXXX XXXX -- [12 chars] Letters + Numbers [All Capital]
XXXXXXXXXXXXXXXX -- [16 chars] Letters + Numbers [All Capital]

我希望它能随机做4种中的1种,而我遇到的问题是为第一种情况添加“-”。不过,它不适用于最后两种,但是对于那些,将有一个空格,如所示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-15 19:25:01

试试这个:

代码语言:javascript
复制
import random
from string import digits, ascii_uppercase

def get_random_template(filename: str, n: int) -> None:
    """Saves n randomly generated templates to filename."""
    t1 = "{}{}-{}{}{}{}-{}{}{}{}-{}{}{}{}".format(*random.choices(ascii_uppercase + digits, k=18))
    t2 = "{}{}{} {}{}{} {}{}{}{}".format(*random.choices(digits, k=10))
    t3 = "{}{}{}{} {}{}{}{} {}{}{}{}".format(*random.choices(ascii_uppercase + digits, k=12))
    t4 = "{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}".format(*random.choices(ascii_uppercase + digits, k=16))

    for i in range(n):
        random_template = random.choice([t1, t2, t3, t4])
        # Write template(s) file:
        with open(filename, 'a') as file_obj:
            file_obj.write(random_template + '\n')
    print(f'Successfully saved {n} file(s) to {filename}.')


if __name__ == '__main__': 
    get_random_template('myTemplatefile.txt', 10)
票数 -1
EN

Stack Overflow用户

发布于 2022-07-15 19:38:26

你可以试试这个:

代码语言:javascript
复制
import random
import string


def rand_int_char(num: int) -> str:
    return "".join(random.choices(string.ascii_letters.upper() + string.digits, k=num))


def rand_int(num: int) -> str:
    return "".join(random.choices(string.digits, k=num))


random_num = random.randint(1, 4)
if random_num == 1:
    # Case 1 : XX-XXXX-XXXX-XXXX-XXXX
    print(f"{rand_int_char(2)}-{rand_int_char(4)}-{rand_int_char(4)}-{rand_int_char(4)}-{rand_int_char(4)}")
elif random_num == 2:
    # Case 2 : XXX XXX XXX
    print(f"{rand_int(3)} {rand_int(3)} {rand_int(4)}")
elif random_num == 3:
    # Case 3 : XXXX XXXX XXXX
    print(f"{rand_int_char(4)} {rand_int_char(4)} {rand_int_char(4)}")
else:
    # Case 4 : XXXXXXXXXXXXXXXX
    print(rand_int_char(16))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72998571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档