输入由数字和字母组合的密码,并输入加密后的密码。加密规则为:先将数字按照顺序输出,字母按照倒序且大小写转换后输出。例如:输入为15ABC7,输出为157cba。
您这是闹着玩儿的,因为这“加密算法”,好像实现不了解密。😀😀
思路:分步处理。1、顺序收集数字。2、倒序收集转小写的字母。
def encrypt(passwords):
''' 字符串加密 '''
cryptograph = '' # 密文初值。
for i in passwords:
if i.isdigit(): # 提取数字。
#if i in list('0987654321'):
cryptograph += i
alpha = [] # 密码文本中的字母初值。
for i in passwords: #提取字母。
if not i.isdigit():
alpha.append(i)
alpha_s = '' # 密文字母初值。
for i in alpha[:]: # 遍历字母列表副本。
char = alpha.pop()
if char.isupper():
alpha_s += char.lower() # 小写字母转小写。
elif char.islower():
alpha_s += char.upper() # 大写字母转大写。
else:
alpha_s += char # 非字母保持原样倒序。
return cryptograph + alpha_s
if __name__ == '__main__':
passwords = input('\n请输入密码:')
if not passwords: # 不输入默认15ABC7。
passwords = '15ABC7'
print('\n原文:', passwords)
print('\n密文:', encrypt(passwords))
加密方法可以实现,解密则答案很多可能
def encryt(s):
return ''.join([v for v in s if v in '0123456789'] + [v.lower() if ord(v) < 94 else v.upper() for v in s if v.lower() in 'abcdefghijklmnopqrstuvwxyz'][::-1])