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

Python 我如何将随机数和字母表中的字母联系起来,而不是重复,python,alphabet,Python,Alphabet,我的目标是最终创建一个谜题,允许用户输入一个短语,将其编码为数字,然后让他们通过慢慢计算字母表中的数字来找出短语 虽然我不想要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.

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

虽然我不想要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)

您可以执行以下操作,构建从字符到唯一数字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))

你所说的其他字母是什么意思?当我运行代码时,它也包括符号,我只想要小写字母替换
可打印的
ascii_lowercase
在代码中的每一个地方,你只会得到“编码”消息中的字母<代码>可打印
包含除小写字母以外的字符。谢谢,如果用户意外使用大写字母,我是否可以显示错误消息/重新启动屏幕