python按照字母表排列顺序将明文中每个字母变换成其后第n个字母。n(n=1~25)被称作秘钥。 请编写程序,针对不同的输入字符串和移动位数,输出经过凯撒加密之后的字符串。 【输入形式】 第一个输入参数是移动的位数n,中间间隔一个空格之后,第二个输入参数是待加密的原文 字符串 【输出形式】 加密后的密文字符串。注意,只加密字母,且不改变字母大小写。待加密的字符串可能存在 比如"hello world"的形式,若与第一个参数一起以input的方式输入,在调用split()的 时候要注意,会将待加密字符串也一并分割了。split()方法有参数指定分割多少项,建议 采用,请上网搜索说明文档。 【样例输入】 5 NUDT 【样例输出】 SZIY 【样例说明】 输入参数中第一个参数'5'表示移动位数n=5,然后将第二个输入参数中每个字母都向后移动 5位,得到输出字符串。
时间: 2023-05-24 15:06:03 浏览: 85
n, s = input().split()
n = int(n)
result = ''
for letter in s:
if letter.isalpha():
if letter.islower():
# 将小写字母移动n位,注意要取模防止越界
result += chr((ord(letter)-ord('a')+n) % 26 + ord('a'))
else:
# 将大写字母移动n位,同样要取模
result += chr((ord(letter)-ord('A')+n) % 26 + ord('A'))
else:
# 非字母字符直接加入结果中
result += letter
print(result)
相关问题
python按照字母表排列顺序将明文中每个字母变换成其后第n个字母。n(n=1~25)被称作秘钥。 请编写程序,针对不同的输入字符串和移动位数,输出经过凯撒加密之后的字符串。 【输入形式】 第一个输入参数是移动的位数n,中间间隔一个空格之后,第二个输入参数是待加密的原文 字符串 【输出形式】 加密后的密文字符串。注意,只加密字母,且不改变字母大小写。待加密的字符串可能存在 比如"hello world"的形式,若与第一个参数一起以input的方式输入,在调用split()的 时候要注意,会将待加密字符串也一并分割了。split()方法有参数指定分割多少项,建议 采用,请上网搜索说明文档。 【样例输入】 5 NUDT 【样例输出】 SZIY 【样例说明】 输入参数中第一个参数'5'表示移动位数n=5,然后将第二个输入参数中每个字母都向后移动 5位,得到输出字符串。
n, s = input().split()
n = int(n)
res = ''
for c in s:
if c.isalpha():
# 大写字母
if c.isupper():
# ord(c)获取字符c的ASCII值,减去65得到该字母在字母表中的位置
# 加上n再取余,得到加密后的字母在字母表中的位置
# 加上65得到加密后的字母的ASCII值
# chr()将ASCII值转换为对应的字符
res += chr((ord(c)-65+n) % 26 + 65)
# 小写字母
else:
res += chr((ord(c)-97+n) % 26 + 97)
# 非字母字符直接添加
else:
res += c
print(res)
加密电码,输入一串字符,将字母变成其后的第4个字母,其他字符不变。
加密电码,也被称为Caesar Cipher(凯撒密码),是一种简单的替换式加密方法。它的核心原理是将明文中的每个字母按照固定的偏移量(通常是4个字母,也就是移动到字母表的下一个位置)转换成密文。例如,字母A会被加密为E,B变为F,以此类推,Z之后则回到A开始循环。非字母字符如数字、空格或标点符号不会改变。
要进行这种加密,只需通过一个简单的计算规则:将字母的ASCII值加上偏移量(在这个例子中是4),然后取模26以保持在字母范围内。解密过程则是相反的操作,即减去相同的偏移量。
如果你有一个字符串需要加密,可以编写一个函数,比如:
```python
def caesar_cipher_encrypt(text, shift=4):
encrypted_text = ""
for char in text:
if 'a' <= char <= 'z':
new_char = chr(((ord(char) - ord('a') + shift) % 26) + ord('a'))
elif 'A' <= char <= 'Z':
new_char = chr(((ord(char) - ord('A') + shift) % 26) + ord('A'))
else:
new_char = char
encrypted_text += new_char
return encrypted_text
# 示例
plaintext = "Hello, World!"
ciphertext = caesar_cipher_encrypt(plaintext)
```
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)