chr()的多个输入编号

2024-10-04 01:36:15 发布

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

我正在尝试输入多个数字,例如

[106, 103, 110, 110, 113, 32, 121, 113, 116, 110, 102] 

使用ord()进行解密,然后通过caeser密码输入。caeser密码有效,但我不知道如何使chr()有效,但它表明当我输入数字时是一个错误。 谢谢大家!

    print("Decryption")
    text = int(input("Enter encrypted numbers: \n"))
    encrypt = chr(text)
    decrp_key = int(input("Enter key:\n"))
    decrypted_text = ""
    for i in range(len(encrypt)):
        if ord(encrypt[i]) == 32:
            decrypted_text += chr(ord(encrypt[i]))
        elif ((ord(encrypt[i]) - decrp_key) < 97) and ((ord(encrypt[i]) - decrp_key) > 90):
            temp = (ord(encrypt[i]) - decrp_key) + 26
            decrypted_text += chr(temp)
        elif (ord(encrypt[i]) - decrp_key) < 65:
            temp = (ord(encrypt[i]) - decrp_key) + 26
            decrypted_text += chr(temp)
        else:
            decrypted_text += chr(ord(encrypt[i]) - decrp_key)
    print("Decrypted Text: " + decrypted_text)```

Tags: keytext密码input数字tempintencrypt
2条回答

如果您想输入一个数字列表,那么您需要执行以下操作

print('Decryption')
text = ""
while True:
    temp = input('Enter encrypted number: ')
    if not temp: #break on empty input
        break
    text = text + chr(int(temp))
decrp_key = int(input("Enter key:\n"))
#rest of your code goes here...

此外,您还应该使用try-except块包装您的输入,以确保您的输入是有效的int

我认为您需要获取一组输入数字并对其进行迭代。如果您对python相当陌生,您可能需要学习一些命令,但这里有一些您可以使用的东西

decrp_key = input("Enter key:\n")
decrypted_text = list(map(int,decrp_key.split(',')))
print (decrypted_text)

输出:

>>> Enter key:
>>> 1, 105, 201, 103, 205
>>> [1, 105, 201, 103, 205]

要访问列表,可以使用for循环

for i in decrypted_text:
    print(i)

输出:

1
105
201
103
205

相关问题 更多 >