本题要求编写程序,将输入字符串中的大写英文字母按以下对应规则替换,其他字符不变。(提示:转换表用元组实现)
原字母 | 对应字母 |
---|---|
A | Z |
B | Y |
C | X |
D | W |
... | ... |
X | C |
Y | B |
Z | A |
输入格式:
在一行中输入字符串
输出格式:
在一行中给出替换完成后的字符串。
输入样例:
在这里给出一组输入。例如:
This is a pen.
输出样例:
在这里给出相应的输出。例如:
Ghis is a pen.
我的答案:
方法一:
string = input()
newString = ""
for i in string:
if (i.isupper()):
newi = chr(155 - ord(i))
else:
newi = i
newString += newi
print(newString)
方法二:
转换类型有限,直接打表~(使用元组)
def replace_uppercase(text):
"""将输入字符串中的大写英文字母按规则替换,其他字符不变。
Args:
text: 输入字符串。
Returns:
替换完成后的字符串。
"""
translation_table = (
('A', 'Z'), ('B', 'Y'), ('C', 'X'), ('D', 'W'), ('E', 'V'), ('F', 'U'),
('G', 'T'), ('H', 'S'), ('I', 'R'), ('J', 'Q'), ('K', 'P'), ('L', 'O'),
('M', 'N'), ('N', 'M'), ('O', 'L'), ('P', 'K'), ('Q', 'J'), ('R', 'I'),
('S', 'H'), ('T', 'G'), ('U', 'F'), ('V', 'E'), ('W', 'D'), ('X', 'C'),
('Y', 'B'), ('Z', 'A')
)
result = ''
for char in text:
if char.isupper():
for original, replacement in translation_table:
if char == original:
char = replacement
break
result += char
return result
text = input()
print(replace_uppercase(text))
方法三:
使用字典
text = input()
translation_dict = {
'A': 'Z', 'B': 'Y', 'C': 'X', 'D': 'W', 'E': 'V', 'F': 'U', 'G': 'T', 'H': 'S',
'I': 'R', 'J': 'Q', 'K': 'P', 'L': 'O', 'M': 'N', 'N': 'M', 'O': 'L', 'P': 'K',
'Q': 'J', 'R': 'I', 'S': 'H', 'T': 'G', 'U': 'F', 'V': 'E', 'W': 'D', 'X': 'C',
'Y': 'B', 'Z': 'A'
}
result = ''.join([translation_dict.get(char, char) for char in text])
print(result)
方法四:
使用内置函数
text = input()
translation_table = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZYXWVUTSRQPONMLKJIHGFEDCBA")
print(text.translate(translation_table))
-
获取用户输入:
text = input()
: 获取用户输入的字符串。
-
创建翻译表:
translation_table = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ZYXWVUTSRQPONMLKJIHGFEDCBA")
: 使用str.maketrans
方法创建了一个翻译表。- 第一个参数是包含所有需要替换的原始字母的字符串。
- 第二个参数是包含对应替换字母的字符串。
- 翻译表将原始字母映射到对应替换字母。
-
应用翻译表:
print(text.translate(translation_table))
: 使用translate
方法将翻译表应用于输入字符串text
,并将结果输出。
注意:
str.maketrans
方法只适用于单个字符的替换。- 翻译表中需要保证原始字母和替换字母的顺序一致