在Python中,编写程序,从键盘输入明文(只转换小 写字母部分,其他字符 内容保持不变), 输出密文。
时间: 2024-04-29 15:23:35 浏览: 103
可以使用Python内置的字符串方法`islower()`判断字符是否为小写字母,并使用`ord()`和`chr()`方法转换字符的ASCII码。
具体实现代码如下:
```python
plaintext = input("请输入明文:")
ciphertext = ""
for c in plaintext:
if c.islower():
# 将小写字母转换为ASCII码,加上偏移量13,再转换回字符
ciphertext += chr((ord(c) - ord('a') + 13) % 26 + ord('a'))
else:
ciphertext += c
print("密文为:", ciphertext)
```
解释一下代码:
1. 首先,使用`input()`函数从键盘读入明文。
2. 然后,定义一个空字符串`ciphertext`,用于存储密文。
3. 接着,遍历明文中的每个字符。
4. 对于每个字符,使用`islower()`方法判断是否为小写字母。
5. 如果是小写字母,则将其转换为ASCII码,加上偏移量13(这里采用的是ROT13加密算法),再将其转换回字符,并将结果添加到`ciphertext`字符串中。
6. 如果不是小写字母,则直接将其添加到`ciphertext`字符串中。
7. 最后,使用`print()`函数输出密文。
例如,输入明文`hello, world!`,则输出密文为`uryyb, jbeyq!`。
相关问题
用python解答:在一行中输入一个包括大小写字母和数字的字符串,编写将其中的大写字母用该字母后面的第4个字母替换,其他字符原样输出,实现字符串的加密。 输入格式: 明文字符串 输出格式: 密文字符串
代码如下:
```python
s = input() # 输入字符串
result = '' # 初始化加密后的字符串
for c in s: # 遍历字符串中的每个字符
if c.isupper(): # 如果是大写字母
result += chr((ord(c) - 65 + 4) % 26 + 65) # 将其替换为后面第4个字母
else:
result += c # 其他字符原样输出
print(result) # 输出加密后的字符串
```
解释如下:
1. 首先读入明文字符串,保存在变量`s`中。
2. 初始化加密后的字符串`result`为空字符串。
3. 使用for循环遍历字符串`s`中的每个字符,对于每个字符进行以下操作:
- 如果该字符是大写字母,就将其替换为该字母后面的第4个字母。具体地,先使用`ord()`函数将该字符转换为ASCII码,然后减去65得到与'A'的偏移量,再加上4,最后模上26得到替换后的字符的偏移量,再加上65得到新的字符,最后使用`chr()`函数将其转换为字符。将得到的新字符添加到`result`中。
- 如果该字符不是大写字母,就将其原样添加到`result`中。
4. 循环结束后,输出加密后的字符串`result`。
注意:这个加密算法是一种简单的替换算法,并不安全,容易被破解。实际使用时应该采用更加复杂的加密算法。
编写Python程序,简单字符加密程序:输入明文和移位数字,输出对应密文
在Python中,你可以创建一个函数来接收用户输入的明文和移位数字,并使用简单的凯撒密码加密。以下是一个基本的实现示例:
```python
def caesar_cipher(input_text, shift):
encrypted_text = ""
for char in input_text:
if 'a' <= char <= 'z':
encrypted_text += chr(((ord(char) - ord('a') + shift) % 26) + ord('a'))
elif 'A' <= char <= 'Z':
encrypted_text += chr(((ord(char) - ord('A') + shift) % 26) + ord('A'))
else:
encrypted_text += char
return encrypted_text
# 获取用户输入
plain_text = input("请输入明文: ")
shift_number = int(input("请输入移位数字: "))
# 加密
encrypted_text = caesar_cipher(plain_text, shift_number)
print("加密后的密文是:", encrypted_text)
阅读全文