我试图在字符串中获取单个字符然后对其进行解码。 我在想这样的事情:
N=0
message = ""
while n=!len(string):
letter=Nth letter in string #This is the part I need help with
num = ord(letter)
result = num - shift_key
message = message + result
N = N + 1
print(message)
答案 0 :(得分:1)
您可以使用以下内容:
message = ''.join(chr(ord(c) - shift_key) for c in string)
在任何情况下,为了访问字符串的第5个字母,您可以使用string[4]
。示例:string = 'string'; print string[4] # prints 'n'
您的代码存在一些问题:
n
而不是N
N != len(string)
代替N =! len(string)
答案 1 :(得分:0)
使用for循环并简单地遍历字符串:
somethingAsync().bind(this).then(function(result){});
与使用for letter in string:
num = ord(letter)
result = (num - shift_key) % 255
message += chr (result) #call chr on result to get a string
索引字符串相同:
N
更容易。
N=0
message = ""
while N != len(string): # != not =! or use < len(string)
letter=string[N] # This is the part I need help with
num = ord(letter)
result = (num - shift_key) % 255
message += chr(result)
N += 1 # same as N = N + 1
print(message)
您可以将代码放在list comprehension:
中In [20]: s = "foobar"
In [21]: for letter in s:
....: print(letter)
....:
f
o
o
b
a
r
如果您不使用 print("".join([chr((ord(letter) - shift_key) % 255) for letter in string]))
,则在尝试将结果转换为str时,最终会得%
。