我正在尝试编写一个python程序,它将一个字符作为输入,它将是一个大写字符;输出应该是字母表中的下一个字符。但如果输入为'Z',则输出应为'A'。以下是我的代码,但是当我输入Y时,它输出'Z'和'Y':
ino = ord(input())
if ino != 90:
ino += 1
print(chr(ino))
if ino == 90:
print(chr(65))
答案 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))
希望这对你有用。