2024-09-28 20:47:44 发布
网友
我正在尝试编写一个python程序,将一个字符作为输入,它将是一个大写字符;输出应该是字母表中的下一个字符。但是如果输入是'Z',那么输出应该是'A'。下面是我的代码,但当我输入Y时,它会输出'Z'和'Y':
ino = ord(input()) if ino != 90: ino += 1 print(chr(ino)) if ino == 90: print(chr(65))
我对python没有太多的经验,但我可以用一般的编程术语来解释它
在这里,你试图做一个圆周运动,也就是说,你希望A在Z之后被打印出来,这是线性公式中的第一个和最后一个元素
A
Z
我们知道A的ASCII值是65,Z的ASCII值是90,英语中有26个字母。现在如果我用65减去输入,我可以从A知道它的位置。如果这个位置+1超过26,也就是说,我们超过了Z,应该回滚到A。在这里我们可以使用模运算。所以当我们用26模化新位置时,我们回滚到A。既然一开始我们减去了65,现在我们必须把它加回去平衡方程,得到真正的ASCII值
26
因此,您的代码可能类似于:
ino = ord(input()) ino = ino - 65 ino = (ino + 1) % 26 ino = ino + 65 print(chr(ino))
希望这对你有用
ino = ord(input()) if ino == 90: ino = 65 else: ino = ino + 1 print(chr(ino))
我对python没有太多的经验,但我可以用一般的编程术语来解释它
在这里,你试图做一个圆周运动,也就是说,你希望
A
在Z
之后被打印出来,这是线性公式中的第一个和最后一个元素我们知道
A
的ASCII值是65,Z
的ASCII值是90,英语中有26
个字母。现在如果我用65减去输入,我可以从A
知道它的位置。如果这个位置+1超过26,也就是说,我们超过了Z
,应该回滚到A
。在这里我们可以使用模运算。所以当我们用26模化新位置时,我们回滚到A
。既然一开始我们减去了65,现在我们必须把它加回去平衡方程,得到真正的ASCII值因此,您的代码可能类似于:
希望这对你有用
相关问题 更多 >
编程相关推荐