用于字符串修改的Python代码无法正常工作

时间:2018-04-04 17:22:56

标签: python string python-2.7

这段代码应该接受一个字符串输入并输出另一个字符串,它只是输入字符串的修改版本。我不能让它工作。

应该输出一个字符串,其中每个字母是输入字符串的下一个字母。但是在运行代码时,它只输出相同的输入字符串而不是修改后的字符串。

def str_changer(string):

       string_list = list(string)
       alphabets = 'abcdefghijklmnopqrstuvwxyz'
       positions = []
       for letter in string_list:
         positions.append(alphabets.index(letter))
       for each in positions:
         each = each + 1
       for each in string_list:
         string_list[string_list.index(each)] = 
       alphabets[positions[string_list.index(each)]]

       another = ''.join(string_list)



       return another



    lmao = raw_input('Enter somin\'')
    print str_changer(lmao)

2 个答案:

答案 0 :(得分:7)

您只需 1行

即可
s = 'abcdz'
print(''.join(chr(ord(letter) + 1) if letter != 'z' else 'a' for letter in s))
# bcdea

<强>演示

>>> ord('a')
97
>>> ord('b')
98
>>> chr(ord('a') + 1)
'b'

答案 1 :(得分:3)

这对你有用。您应该使用%来核算z

重点是你不需要明确地建立一个职位列表。

def str_changer(string):

    string_list = list(string)
    alphabets = 'abcdefghijklmnopqrstuvwxyz'

    new_string_list = []

    for letter in string_list:
        new_string_list.append(alphabets[(alphabets.index(letter)+1) % len(alphabets)])

    return ''.join(new_string_list)

lmao = raw_input('Enter somin\'')
print str_changer(lmao)