python - 在循环中随机化字符
问题描述
我想在我的 for 循环中随机化答案。我当前的代码只打印:AAA、BBB、CCC。
while True:
for i in range(65,91):
answer = chr(i) + chr(i) + chr(i)
print(answer)
如何随机返回每一个可能的组合,如 AXY、BMK 等。
随机模块可以做到这一点还是我需要使用其他东西?
解决方案
尝试这个:
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)
)
)
推荐阅读
- javascript - 如何使用 CSS 调整图像和文本的响应式设计?
- java - 使用令牌从本地运行的 Google Cloud 应用程序检索 Firebase 用户
- php - 使用文件锁确保 PHP 守护程序脚本只运行一次
- python-3.x - 定义一个使用 3 个参数自动生成 k-means 聚类图的函数
- angular - 在 Angular 7.2.1 中创建新项目时出错
- android - Recyclerview 拖放 ontouch
- c# - 使用 Lamar 搭建实体框架控制器
- python - Class属性可以是数组吗
- ios - 如果已安装,如何重定向到 Google 地图,否则如何重定向到 Appstore 以使用 Swift 安装 Google 地图
- java - 如何在另一个活动的 GraphView 中将 SQLite db 中的日期显示为 X 轴,仅显示 1-1-1970?