Python 使用if语句遍历大写字符

Python 使用if语句遍历大写字符,python,ascii,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)) 我对python没有太多经验,但我可以用一般编程术语来解释它 在这里,您试图做圆周运动,即希望在Z之后立即打印a,这

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

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

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

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

我们知道
A
的ASCII值是65,
Z
的ASCII值是90,英文字母表中有
26。现在如果我用65减去输入,我可以从
A
知道它的位置。如果该位置+1超过26,即我们超过了
Z
,应该回滚到
A
。在这里,我们可以使用模运算符(%)。因此,当我们用26模化新位置时,我们回滚到
A
。既然一开始我们减去了65,现在我们必须把它加回去,以平衡方程,得到真正的ASCII值

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

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

希望这对您有用。

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

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

我们知道
A
的ASCII值是65,
Z
的ASCII值是90,英文字母表中有
26。现在如果我用65减去输入,我可以从
A
知道它的位置。如果该位置+1超过26,即我们超过了
Z
,应该回滚到
A
。在这里,我们可以使用模运算符(%)。因此,当我们用26模化新位置时,我们回滚到
A
。既然一开始我们减去了65,现在我们必须把它加回去,以平衡方程,得到真正的ASCII值

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

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

希望这对您有用。

因此,请逐行检查您的代码,想象输入为
Y
时会发生什么!当我输入Y时,它会输出“Z”和“Y”否,它会输出
Z
A
。您将引发ino,然后再次检查它。删除最后一个“if”的索引并将其更改为“elif”。如果缩进使第二个if语句永远不会运行,请逐行检查代码,想象输入为
Y
时会发生什么!当我输入Y时,它会输出“Z”和“Y”否,它会输出
Z
A
。您将引发ino,然后再次检查它。删除最后一个“if”的indundation并将其更改为“elif”。缩进使第二个if语句永远不会运行