如何将字符串的最后一个字符替换为字母的第一个字母?

时间:2020-10-16 21:45:24

标签: python

我目前正在编写一个代码,将一个单词中的每个字母向上移动一个字母,例如:Abc变为Bcd(第一个字母始终为大写),但是每当我在单词中输入z时,它就会变成{或[(如果是大写字母)。例如,如果我输入zoo,则输出为“ [pp]”,我希望z变为a。到目前为止,我已经尝试过:

word = input("Insert Word:")
word = word.capitalize().replace(" ", "")
    for shift in word:
  incrypt = chr(ord(shift)+1)
  Last_char= incrypt[-1]
  if Last_char > chr(123):
    Last_char = [chr(97)]
    print (incrypt, end='')
  elif Last_char == chr(91):
    Last_char = [chr(65)]
    print (incrypt, end='')

我也尝试过使用如下if语句:

{{1}}

但这没用。

2 个答案:

答案 0 :(得分:0)

以下是使用join的解决方案:

word = word.lower()

"".join(chr(ord('a') + (ord(w)-ord('a')+1)%26) for w in word).capitalize()

答案 1 :(得分:0)

我会这样做:

word = input("Insert Word:")
word = word.capitalize().replace(" ", "")

A,Z = ord('A'), ord('Z')
a,z = ord('a'), ord('z')

step = 1

for shift in word:
    new_char = ord(shift) + step
    
    incrypt = None
    if 'a' <= shift <= 'z':
        incrypt = chr(new_char) if new_char <= z else chr(a + (new_char - z - 1)%26 )
    elif 'A' <= shift <= 'Z':
        incrypt = chr(new_char) if new_char <= Z else chr(A + (new_char - Z - 1)%26 )
    else : 
        incrypt = shift
    print (incrypt, end='')
相关问题