'''
题目描述
1、对输入的字符串进行加解密,并输出。
2加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。s
'''
# -*- coding: utf-8 -*-
import re
#判断是否是字母
def isLetter(letter):
if len(letter) != 1:
return 0
else:
num_re = '[a-z]|[A-Z]'
pattern = re.compile(num_re)
result = re.match(pattern, letter)
if result == None:
return 0
else:
return 1
#判断字母是否是小写字母:
def isLower(letter):
if letter.lower()==letter:
return 1
else:
return 0
#判断字母是否是Z/z
def isZ(letter):
if letter.lower()=='z':
return 1
else:
return 0
#对英文字母进行加密
def encryLetter(letter):
if isZ(letter)=='z':
if isLower(letter)==1:
return 'A'
else:
return 'a'
else:
if isLower(letter)==1:
return chr(ord(letter)+1-32)
else:
return chr((ord(letter))+1+32)
#对数字进行加密
def encryNum(num):
if num==9:
return 0
else :
return int(num)+1
# 判断是否为数字:
def isNum(var):
if len(var) != 1:
return 0
else:
num_re = '[0-9]'
pattern = re.compile(num_re)
result = re.match(pattern, var)
if result == None:
return 0
else:
return 1
#对一个字符进行加密
def Encrypt_single(character):
if isLetter(character)==1:
return encryLetter(character)
if isNum(character)==1:
return encryNum(character)
else:
return character
'''
接口描述:
实现接口,每个接口实现1个基本操作:
void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出
说明:
1、字符串以\0结尾。
2、字符串最长100个字符。
'''
def Encrypt():
while 1:
unEncrypt = input('请输入要加密的字符串,并且字符串长度不大于8:')
if len(unEncrypt)>8:
print("字符串长度大于8,请重新输入!\n")
continue
else:
break
Encrypt_str=[]
for i in range(len(unEncrypt)):
Encrypt_str.append(Encrypt_single(unEncrypt[i]))
print(Encrypt_str)
Encrypt()