Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输入字母表并输出字母表中下一个字符的程序_Python_Python 3.x - Fatal编程技术网

Python 输入字母表并输出字母表中下一个字符的程序

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":

这是我写的代码 当我输入Z时 它提出了 [ A. 我不明白这个方括号是从哪里来的
请您解释一下为什么会出现这种情况,以及我能做些什么来修复它,谢谢

问题在于即使
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'