Python周总结

本周学习了元组,列表,集合,字典以及正则表达式。

知识点总结:

元组('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"您的输入有误!")

你可能感兴趣的:(python)