Python 如何检查列表中是否存在值,并将包含该值的元素存储在变量中
我试图制作一个加密机,它将字母移动3次(因此A变成D,B变成E,等等) 然后X回到A,Y回到B,Z回到C。我用ASCII值来移动它们。我试图查看列表的任何部分是否具有ASCII值X、Y或Z,如果是,则将该元素更改回A、B或C的ASCII值。 我知道你可以检查列表中是否有一个值,但是我如何实际获取这个值并更改它呢?以下是我想做的:Python 如何检查列表中是否存在值,并将包含该值的元素存储在变量中,python,list,Python,List,我试图制作一个加密机,它将字母移动3次(因此A变成D,B变成E,等等) 然后X回到A,Y回到B,Z回到C。我用ASCII值来移动它们。我试图查看列表的任何部分是否具有ASCII值X、Y或Z,如果是,则将该元素更改回A、B或C的ASCII值。 我知道你可以检查列表中是否有一个值,但是我如何实际获取这个值并更改它呢?以下是我想做的: 检查用户输入列表中是否存在X/Y/Z的ASCII码 如果为true,则获取该值并相应地将其更改回A/B/C的ASCII值。 这是我的密码: 谢谢 实际上不需要单独检
- 检查用户输入列表中是否存在X/Y/Z的ASCII码
- 如果为true,则获取该值并相应地将其更改回A/B/C的ASCII值。 这是我的密码:
谢谢 实际上不需要单独检查
x,y,z
。只需使用模运算符(%
),因此如果它溢出,它将返回到a、b、c
:
def encrypt(userInput):
# Find Ascii Value of plaintext
asciiValue = [ord(c) for c in userInput]
# Convert Ascii value (list) into integers
intAscii = [int(x) - 97 for x in asciiValue]
encryptedAscii = [(n + 3) % 26 + 97 for n in intAscii]
encryptedOutput = ''.join(chr(v) for v in encryptedAscii)
return encryptedOutput
from string import ascii_lowercase
print(encrypt(ascii_lowercase))
输出:
defghijklmnopqrstuvwxyabc
ABCDEFGXYZabcdefgxyz => DEFGHIJABCdefghijabc
使用
ord
和chr
可以,但还有一种更简单的方法:和:
输出:
defghijklmnopqrstuvwxyabc
ABCDEFGXYZabcdefgxyz => DEFGHIJABCdefghijabc
显然这是行不通的:如果encryptedAscii中的'120':encryptedAscii='97'elif'121'在encryptedAscii:encryptedAscii='98'elif'122'在encryptedAscii:encryptedAscii='99'中,但我不知道如何正确操作……我从未使用过
str.maketrans
,所以这对我来说是一个有趣的方法。然而,“abc”应该变成“def”。根据您的解决方案,它仍然是“abc”。@Asocia-再次编辑-现在Z映射到C,Z映射到C:)-我最初使用的翻译格言中只有大写字母(ascii_大写)