使用if语句来完成大写字符

时间:2018-01-07 06:06:54

标签: python ascii

我正在尝试编写一个python程序,它将一个字符作为输入,它将是一个大写字符;输出应该是字母表中的下一个字符。但如果输入为'Z',则输出应为'A'。以下是我的代码,但是当我输入Y时,它输出'Z'和'Y':

ino = ord(input())
if ino != 90:
 ino += 1
 print(chr(ino)) 
 if ino == 90: 
  print(chr(65))

2 个答案:

答案 0 :(得分:2)

ino = ord(input())
if ino == 90:
    ino = 65
else:
    ino = ino + 1
print(chr(ino))

答案 1 :(得分:0)

我没有太多使用python的经验,但我可以用一般的编程术语来解释它。

在这里,您试图进行圆周运动,即您希望在A之后立即打印Z,这是线性公式中的第一个和最后一个元素。

我们知道A的ASCII值为65,Z的ASCII值为90,英语中有26个字母。现在,如果我用65减去输入,我可以从A知道它的位置。如果此位置+ 1超过26,即我们超过Z并且应该回滚到A。我们可以在这里使用 Modulo 运算符(%)。因此,当我们用26模拟新位置时,我们回滚到A。而且由于我们在开始时减去了65,我们现在必须将其添加回来以平衡等式并获得真正的ASCII值。

因此,您的代码可能类似于:

ino = ord(input())
ino = ino - 65
ino = (ino + 1) % 26
ino = ino + 65
print(chr(ino))

希望这对你有用。