请编写程序,针对不同的输入字符串和移动位数,输出经过凯撒加密之后的字符串。
时间: 2023-05-26 17:05:29 浏览: 141
py代码-输入一个字符串,输出加密后的结果字符串。加密规则为: 每个字符的Unicode编码和下一个字符的Unicode编码相减, 用这个差的绝对值作为Unicode编码,对应的字符作为当前位置上字符的加密结果, 最后一个字符是和第一个字符进行运算。
5星 · 资源好评率100%
以下是Python程序的实现:
```Python
def caesar_cipher(string, shift):
"""
对输入的字符串进行凯撒加密
:param string: 待加密的字符串
:param shift: 移动位数
:return: 加密后的字符串
"""
result = ""
for char in string:
# 如果字符为英文大写字母
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65)
# 如果字符为英文小写字母
elif char.islower():
result += chr((ord(char) + shift - 97) % 26 + 97)
# 如果字符为其他字符
else:
result += char
return result
```
程序中,我们定义了一个名为`caesar_cipher`的函数,该函数接受两个参数:待加密的字符串和移动位数。在函数实现中,我们遍历输入的字符串中的每一个字符,如果该字符是英文大写字母,则将该字符的ASCII码加上移动位数并取模,最后再转换成字符;如果该字符是英文小写字母,则同样进行相同的加密操作;如果该字符不是英文字母,则直接添加到加密后的字符串中。最后,返回加密后的字符串。
下面是一个示例:
```Python
string = "hello, world!"
shift = 4
encrypted_string = caesar_cipher(string, shift)
print("加密前:", string)
print("加密后:", encrypted_string)
```
输出结果为:
```
加密前: hello, world!
加密后: lipps, asvph!
```
阅读全文