,掌握string库、maketrans() 函数、translate()函数的用法后,编写一个程序实现凯撒加密:输入一个字符串,对字符串中的字母和数字进行加密(规定加密偏移量为3,即后移三位),并输出加密后的字符串。python
时间: 2024-12-24 22:39:32 浏览: 10
在Python中,我们可以使用`maketrans()`函数生成一个字符映射表,然后利用`translate()`函数进行替换操作来实现凯撒加密。以下是使用`maketrans()`和`translate()`实现凯撒加密的一个简单示例:
```python
def caesar_cipher(text, shift=3):
# 定义字母和数字的ASCII码范围
alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
# 创建一个映射表,将每个字符向后移动指定位数
trans_table = str.maketrans(alpha, alpha[shift:] + alpha[:shift])
# 使用映射表加密文本
encrypted_text = text.translate(trans_table)
return encrypted_text
# 输入原始字符串
input_string = input("请输入要加密的字符串: ")
encrypted_string = caesar_cipher(input_string)
print("加密后的字符串: ", encrypted_string)
相关问题
掌握string库、maketrans() 函数、translate()函数的用法后,编写一个程序实现凯撒加密:输入一个字符串,对字符串中的字母和数字进行加密(规定加密偏移量为3,即后移三位),并输出加密后的字符串。python
在Python中,我们可以使用`maketrans()`函数生成一个字符映射表,然后通过`translate()`函数来进行替换操作来实现凯撒加密。下面是一个简单的程序示例:
```python
def caesar_cipher(text, shift=3):
# 创建映射表,将字母和数字后移3位
trans_table = str.maketrans('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA0123456789')
# 对输入的文本进行加密
encrypted_text = text.translate(trans_table)
return encrypted_text
# 示例使用
plaintext = input("请输入需要加密的字符串:")
encrypted_text = caesar_cipher(plaintext)
print("加密后的字符串是:", encrypted_text)
```
在这个程序中,用户输入一个字符串,`maketrans()`函数会创建一个从小写字母到后移3位小写字母,大写字母到后移3位大写字母,以及数字到对应位置数字的映射表。`translate()`函数则根据这个映射表替换原始文本中的字符。
凯撒密码用string库translate函数
凯撒密码可以利用Python内置的`str.translate()`方法来实现,这是一种更简洁的方式来处理字符替换。`translate()`方法创建了一个查找表,将明文字母替换为其在字母表上按照偏移量移动后的对应位置。下面是使用`translate()`的简单版本:
```python
def caesar_cipher_with_translate(text, shift):
# 创建查找表,将大写字母和小写字母分别映射到加密后的字母
table = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[shift:] + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[:shift])
# 使用translate()替换明文中的字符
encrypted_text = text.translate(table)
return encrypted_text
# 示例使用
plaintext = "Hello, World!"
shift = 3
encrypted = caesar_cipher_with_translate(plaintext, shift)
print(f"原始文本:{plaintext}")
print(f"加密后:{encrypted}")
阅读全文