本周学习了元组,列表,集合,字典以及正则表达式。
知识点总结:
元组('a','b') 列表['a','b'] 集合()(无重复元素) 字典{key1:value1,key2:value2}
正则表达式对我来说算是一个难点,重点掌握 . ^ & {}()等的用法。
本周作业难题:
凯撒加密:
1、容易理解版(使用映射关系)
def kaisa(s,k):
low='abcdefghijklmnopqrstuvwxyz
up=low.upper()
before=low+up
after=low[k:]+low[:k]+up[k:]+up[:k]
table=''.maketrans(before,after)
return s.translate(table)
s='i love you‘
k=int(input("请输入一个整数密钥:"))
print(kaisa(s,k))
2、
import os
def encryption():
str_raw = input("请输入明文:")
k = int(input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
i = i+1
print ("加密结果为:"+"".join(str_list_encry))
def decryption():
str_raw = input("请输入密文:")
k = int(input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_decry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) >= 97+k:
str_list_decry[i] = chr(ord(str_list[i]) - k)
else:
str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
i = i+1
print ("解密结果为:"+"".join(str_list_decry))
while True:
print (u"1. 加密")
print (u"2. 解密")
choice = input("请选择:")
if choice == "1":
encryption()
elif choice == "2":
decryption()
else:
print (u"您的输入有误!")