首页 > 解决方案 > 在循环中随机化字符

问题描述

我想在我的 for 循环中随机化答案。我当前的代码只打印:AAA、BBB、CCC。

while True:
    for i in range(65,91):
        answer = chr(i) + chr(i) + chr(i)
        print(answer)

如何随机返回每一个可能的组合,如 AXY、BMK 等。

随机模块可以做到这一点还是我需要使用其他东西?

标签: pythonfor-loop

解决方案


尝试这个:

import string
import random
char_big = string.ascii_uppercase

while True:
    print(''.join(random.choice(char_big) for _ in range(3)))

感谢@JiříBaum,如果这对您防止攻击很重要,您可以使用SystemRandom以下方法secrets

import string
import secrets
char_big = string.ascii_uppercase

while True:
    print(''.join(secrets.choice(char_big) for _ in range(3)))

或者:

import string
import secrets
char_big = string.ascii_uppercase

while True:
    print(
        ''.join(char_big[secrets.SystemRandom().randrange(0, 26)] \
                for _ in range(3)
               )
    )

推荐阅读