8、编写程序实现如下功能:对用户输入的原文(只能为大小写英文字母和阿拉伯数字),加密后输出密文。 原文和密文的对应关系为 原文:abc...xyzABC...XYZ012...789 密文:cde...zabCDE...ZAB123...890 注意:字母循环后错2位,数字循环后错1位 如:程序运行时输入HelloWorld911Zz,则输出显示: JgnnqYqtnf022Bb利用字符串
时间: 2024-03-02 11:51:22 浏览: 49
可以使用 Python 语言实现该功能,代码如下:
```python
def encrypt(text):
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
shifted = "cdefghijklmnopqrstuvwxyzabCDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuv0123456789wxyzab"
mapping = str.maketrans(alphabet, shifted)
return text.translate(mapping)
text = input("请输入原文:")
cipher = encrypt(text)
print("密文为:", cipher)
```
在该程序中,我们使用了 `str.maketrans` 方法生成了一个映射表 `mapping`,将原文中的字符映射为密文中的字符。然后,使用 `translate` 方法将原文中的字符替换为密文中的字符。
注意,我们在定义 `alphabet` 和 `shifted` 时,把数字也包含在了其中,并且在密文中做了错位处理。具体地说,字母循环后错 2 位,数字循环后错 1 位。这样可以保证加密后的密文不会与原文中的字符相同。
最后,我们通过 `input` 函数获取用户输入的原文,调用 `encrypt` 函数得到密文,然后输出密文。
相关问题
8、编写程序实现如下功能:对用户输入的原文(只能为大小写英文字母和阿拉伯数字),加密后输出密文。 原文和密文的对应关系为 原文:abc...xyzABC...XYZ012...789 密文:cde...zabCDE...ZAB123...890 注意:字母循环后错2位,数字循环后错1位 如:程序运行时输入HelloWorld911Zz,则输出显示: JgnnqYqtnf022Bb
可以使用 Python 语言实现该功能,代码如下:
```python
def encrypt(text):
alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
shifted = 'cdefghijklmnopqrstuvwxyzabCDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuv0123456789wxyzab'
mapping = str.maketrans(alphabet, shifted)
return text.translate(mapping)
text = input("请输入原文:")
cipher = encrypt(text)
print("密文为:", cipher)
```
该程序中,`encrypt` 函数接收一个字符串 `text` 作为输入,返回加密后的密文。在函数内部,定义了原文和密文的对应关系 `alphabet` 和 `shifted`,并使用 `str.maketrans` 方法生成一个映射表 `mapping`,将原文中的字符映射为密文中的字符。最后,使用 `translate` 方法将原文中的字符替换为密文中的字符。
在主程序中,先通过 `input` 函数获取用户输入的原文,然后调用 `encrypt` 函数得到密文,最后输出密文。
编写程序实现偷单的文 本加密功能:程序运行时接收用户输人的原文《只能为大小 写焚文字母和阿拉伯数宇),并转换为密文输出。以下是原文和密文的对应关系。 原文:abco..xyzABC...XYZ012...789 密文:cde...zabCDE...ZAB123...890
```python
def encrypt(text):
"""
将原文转换为密文
"""
result = ""
for char in text:
if char.isalpha():
if char.islower():
result += chr((ord(char) - ord('a') + 2) % 26 + ord('a'))
else:
result += chr((ord(char) - ord('A') + 2) % 26 + ord('A'))
elif char.isdigit():
result += str((int(char) + 2) % 10)
else:
result += char
return result
text = input("请输入原文:")
print("密文为:", encrypt(text))
```
其中,`ord()` 函数用于获取字符的 ASCII 码,`chr()` 函数用于获取指定 ASCII 码对应的字符。对于字母,先将其转换为 0-25 的数字,加上 2 后取模得到新的数字,再转换回字符。对于数字,先将其转换为整数,加上 2 后取模得到新的数字,再转换回字符串。对于其他字符,直接输出。