我想在字符串中使用一个字母

时间:2015-04-28 12:37:45

标签: python

我试图在字符串中获取单个字符然后对其进行解码。 我在想这样的事情:

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)

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

message = ''.join(chr(ord(c) - shift_key) for c in string)

在任何情况下,为了访问字符串的第5个字母,您可以使用string[4]。示例:string = 'string'; print string[4] # prints 'n'

您的代码存在一些问题:

  1. 您在while循环中使用了n而不是N
  2. N != len(string)代替N =! len(string)
  3. 结果是一个数字,您将它添加到字符串消息中,这将引发错误。 => message = message + chr(result)

答案 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时,最终会得%