代码:
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
成上面的整数呢?顺便说一句,我是个新手。
代码:
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
成上面的整数呢?顺便说一句,我是个新手。
一个班轮,因为我很无聊:
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 并将其偏移您想要的值。使用否定的偏移值调用 encrypt(1 变为 -1 等)以对其进行解密。
显然,我无法使用 builtin 执行此操作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="")
问题已经得到解答,但一般来说,如果您希望仍然使用您编写的代码,您会想要使用字典:
letters = {"a": 26, "b": 25...}
return ''.join([letters[item] for item in str(raw_input("Print String:\n>"))])