Python 输入字母表并输出字母表中下一个字符的程序
这是我写的代码 当我输入Z时 它提出了 [ A. 我不明白这个方括号是从哪里来的Python 输入字母表并输出字母表中下一个字符的程序,python,python-3.x,Python,Python 3.x,这是我写的代码 当我输入Z时 它提出了 [ A. 我不明白这个方括号是从哪里来的 请您解释一下为什么会出现这种情况,以及我能做些什么来修复它,谢谢问题在于即使char==“Z”也会执行print(chr(char1))行,因为它不在else块中。方括号是由[是Z之后的下一个ASCII字符。修复代码的一种方法是编写以下代码: char = str(input()) char1 = ord(char) + 1 print(chr(char1)) if char == "Z":
请您解释一下为什么会出现这种情况,以及我能做些什么来修复它,谢谢问题在于即使
char==“Z”
也会执行print(chr(char1))
行,因为它不在else
块中。方括号是由[
是Z
之后的下一个ASCII字符。修复代码的一种方法是编写以下代码:
char = str(input())
char1 = ord(char) + 1
print(chr(char1))
if char == "Z":
print("A")
添加1后,您将无法转换为
chr
,您可以利用Python中的三元运算符:
char=input()
打印(“A”如果字符==“Z”否则字符(ord(字符)+1))
语法:
char = str(input())
char1 = ord(char) + 1
if char == "Z":
print("A")
else:
print(chr(char1))
:计算结果为条件
或True
的布尔表达式False
:如果表达式的计算结果为true\u val
,则要指定的值true
:如果表达式的计算结果为false\u val
,则要指定的值false
If
情况,您可以预先定义要循环使用的字符范围,并使用模运算符%
,这样您的+1
自动循环使用ASCII范围,而不会落入[
,它是Z
之后的字符
true_val if condition else false_val
如果您决定循环使用小写字母a-z而不是a-z,您只需在前两行中将“a”替换为“a”,将“z”替换为“z”。您可以对任意范围的ASCII字符执行此操作
如果要将步骤更改为+2个字符,只需更改第一个+1(第二个必须保持原样):
这将为您提供A
→<代码>C和Z
→<代码>Β。如果使用If
条件执行此操作,则必须将其更改为:
char1 = chr_range_start + ((ord(char) + 2 - chr_range_start) % (chr_range + 1))
使用上面的代码,您可以任意更改范围和步长值,而无需更改代码
char1 = chr_range_start + ((ord(char) + 2 - chr_range_start) % (chr_range + 1))
if char == 'Y':
char1 = 'A'
elif char == 'Z':
char1 = 'B'