功能-加密密钥



我正在尝试创建一个函数,加密用户插入的4位数字。

我可以到达这个:

while True:
num = int(input('Insira um valor entre 1000 e 9999: '))
if num<1000 or num>9999:
print('Insira um valor válido.')
else:
break
num_str = str(num)
def encrypt(num):
num_encrip = ''
for i in num_str:
match i:
case '1':
num_encrip = 'a'
case '2': 
num_encrip = '*'
case '3':
num_encrip = 'I'
case '4':
num_encrip = 'D'
case '5':
num_encrip = '+'
case '6':
num_encrip = 'h'
case '7':
num_encrip = '@'
case '8':
num_encrip = 'c'
case '9':
num_encrip = 'Y'
case '0':
num_encrip = 'm'
print(num_encrip, end='')

加密(num_str)

它工作得很好,但我知道这不是很有效,使用列表应该更好。这里我卡住了,因为我不能适应上面的代码列表…

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
chars = ['a', '*', 'I', 'D', '+', 'h', '@' 'c', 'Y', 'm']
while True:
num = int(input('Insira um valor entre 1000 e 9999: '))
if num<1000 or num>9999:
print('Insira um valor válido')
else:
break
num_str = str(num)
def encrypt():
pass
encrypt(num_str)

我写了这么多的东西在函数加密,但没有工作…我卡住了……请帮忙好吗?我知道我必须做一个for循环…但究竟是什么呢?

谢谢。

对于2列表,我建议从数字到字符进行映射

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
chars = ['a', '*', 'I', 'D', '+', 'h', '@', 'c', 'Y', 'm']
correspondances = dict(zip(nums, chars))
def encrip2(value):
num_encrip = ''
for c in value:
num_encrip += correspondances[int(c)]
print(num_encrip)

由于索引是整型,您可以直接将它们用作字符

的索引。
chars = 'ma*ID+h@cY'
def encrip2(value):
num_encrip = ''
for c in value:
num_encrip += chars[int(c)]
print(num_encrip)

最新更新