-2

编写一个程序,输入一个字符(长度为 1 的字符串),你应该假设它是一个大写字符;输出应该是字母表中的下一个字符。如果输入是'Z',你的输出应该是'A'。(您将需要使用 if 语句。)到目前为止,我已经尝试了几个这样的代码:

chr = input()
if chr == '65':
        x = chr(ord(chr) + 1)
print(chr(65) + 1)

它说它打印时没有输出,只是不确定如何获得正确的输出。我对编程很陌生。

4

5 回答 5

3

您可以使用以下想法:

A = 65 Z = 90

如果从输入中减去 ord('A'),则将范围缩小到 [0, 25]

因此,您需要在 [0, 25] 范围内定义输出。为避免超出此范围,您应该使用“%”。

char_input = input()
return chr((ord(char_input) - ord('A') + 1) % 26 + ord('A'))

这意味着,给定输入,您将减去 ord('A') 的值以“修复”范围,然后加上 + 1。您将采用 % 26 以避免超出范围。毕竟,再次添加 ord('A') 。

于 2019-09-25T18:40:19.237 回答
1

这应该有效:

my_chr = ord(input())
if my_chr == 90:
        print('A')
else:
    print(chr(my_chr+1))

它接受输入字母 ( A-Z) 并获取其ord()值。然后它检查该值是否等于Z( ord('Z') == 90) 并打印A,否则将其递增 1,然后将其转换回字符串并打印它。

于 2019-09-25T18:31:32.557 回答
0

下面的方法是使用 ascii_letters。

import string

// returns a string of all the alphabets
// abcdefghijklmnopqrstuvwxyz"

   result = string.ascii_letters 

// get the index of the input alphabet and return the next alphabet in the results string. 
// using the modulus to make sure when 'Z' is given as the input it returns to the first alphabet. 

   result[(result.index(alphabet.lower()) + 1) % 26].upper() 
于 2019-09-25T18:29:25.037 回答
0

希望这是您正在寻找的

_chr = input('Enter character(A-Z): ')
if _chr == 'Z':
    print('A')
else:
    print(chr(ord(_chr) + 1))
于 2019-09-25T18:31:28.940 回答
0
alpha=input()
if alpha =='Z': print('A')
else:print(chr(ord(alpha)+1))

“您将需要使用 if 语句”

于 2019-09-25T18:44:41.267 回答