代码:
a=26
b=25
c=24
d=23
e=22
f=21
g=20
h=19
i=18
j=17
k=16
l=15
m=14
n=13
o=12
p=11
q=10
r=9
s=8
t=7
u=6
v=5
w=4
x=3
y=2
z=1
print ("Please print string:")
str1 = str(raw_input(">"))
print str1
但是如何将str1
转换为上面的整数呢?顺便说一句,我是一个新手。
答案 0 :(得分:2)
因为我很无聊,所以只有一个班轮:
print ''.join([str(123-ord(l))for l in str(raw_input("Print String:\n>"))])
然而,这可能更符合您的要求:
print ("Please print string:")
str1 = str(raw_input(">"))
offset = 1
values = [ord(l) + offset for l in str1]
print ''.join([chr(v) for v in values])
这会使字符串中每个字母的ascii值列表被加密常量偏移,然后将它们转换回字符(现在为偏移量)并将列表连接成字符串。
或以函数形式:
print ("Please print string:")
str1 = str(raw_input(">"))
def encrypt(string,offset):
return ''.join([chr(ord(l) + offset) for l in string])
print encrypt(str1,2)
然后,您可以对任何字符串调用encrypt并将其偏移所需的值。在您的偏移值被取消(1转到-1等)的情况下调用加密以解密它。
答案 1 :(得分:0)
显然,我无法使用内置string.translate
执行此操作,但以下2个工作正常。
import string
# Construct a dictionary for required translation
translation = {}
for index, char in enumerate(string.ascii_lowercase):
translation[char] = 26 - index
# Function to translate given string
def translate(user_string):
return "".join([str(translation[c]) for c in user_string])
user_string = raw_input("Enter your string - ")
print translate(user_string)
注意 - string.ascii_lowercase
提供'abcdefghijklmnopqrstuvwxyz'
如果您不想将翻译转换为字符串,则可以执行
from __future__ import print_function
import string
translation = {}
for index, char in enumerate(string.ascii_lowercase):
translation[char] = 26 - index
user_string = raw_input("Enter your string - ")
for c in user_string:
print(translation[c],end="")
答案 2 :(得分:0)
问题已经得到解答,但一般来说,如果你仍然想要使用你编写的代码,你会想要使用字典:
letters = {"a": 26, "b": 25...}
return ''.join([letters[item] for item in str(raw_input("Print String:\n>"))])