我如何将随机数和字母表中的字母联系起来,而不是重复

2024-04-26 12:04:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是最终创建一个谜题,允许用户输入一个短语,将其编码为数字,然后让他们通过慢慢计算字母表中的数字来找出短语

虽然我不想要a=1,b=2等,因为那太容易了

到目前为止,我已经能够做到这一点,但即使这样也不排除重复:

字母得到随机数:

import random 

a = random.randint(1, 26)
b = random.randint(1, 26)
c = random.randint(1, 26)
d = random.randint(1, 26)
e = random.randint(1, 26)
f = random.randint(1, 26)
g = random.randint(1, 26)
h = random.randint(1, 26)
i = random.randint(1, 26)
j = random.randint(1, 26)
k = random.randint(1, 26)
l = random.randint(1, 26)
m = random.randint(1, 26)
n = random.randint(1, 26)
o = random.randint(1, 26)
p = random.randint(1, 26)
q = random.randint(1, 26)
r = random.randint(1, 26)
s = random.randint(1, 26)
t = random.randint(1, 26)
u = random.randint(1, 26)
v = random.randint(1, 26)
w = random.randint(1, 26)
x = random.randint(1, 26)
y = random.randint(1, 26)
z = random.randint(1, 26)

print ("a is:",a)
print ("b is:",b)
print ("c is:",c)
print ("d is:",d)
print ("e is:",e)
print ("f is:",f)
print ("g is:",g)
print ("h is:",h)
print ("i is:",i)
print ("j is:",j)
print ("k is:",k)
print ("l is:",l)
print ("m is:",m)
print ("n is:",n)
print ("o is:",o)
print ("p is:",p)
print ("q is:",q)
print ("r is:",r)
print ("s is:",s)
print ("t is:",t)
print ("u is:",u)
print ("v is:",v)
print ("w is:",w)
print ("x is:",x)
print ("y is:",y)
print ("z is:",z)

Tags: 用户import目标编码is字母数字random
1条回答
网友
1楼 · 发布于 2024-04-26 12:04:58

您可以执行以下操作,从字符到唯一数字1-26构建dict映射:

import string, random

nums = random.sample(range(1, 27), 26)
code = dict(zip(string.ascii_lowercase, nums))
# {'a': 8, 'b': 13, 'c': 20, 'd': 25, 'e': 10, 'f': 17, 
#  'g': 2, 'h': 9, 'i': 12, 'j': 7, 'k': 15, 'l': 19, 'm': 26, 
#  'n': 18, 'o': 24, 'p': 4, 'q': 21, 'r': 5, 's': 3, 't': 1, 
#  'u': 16, 'v': 22, 'w': 14, 'x': 23, 'y': 11, 'z': 6}

对于解码,您可以使用向后映射:

decode = dict(zip(nums, string.ascii_lowercase))

相关问题 更多 >