新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

新大榭软件管家 V5.8 Excel版 微信版 发布 财务/仓库/生产/销售/采购/行政/人事/校园 客服中心 - 办公软件 - 网站设计 - 广告招商

新大榭镜像 - 官方Web实验室 - 加入收藏 - 设为首页 广告是为了更好的发展 欢迎我区企业及商家赞助本站 首页文字黄金广告位(赞助)公益广告免费发布

查看: 299|回复: 0

[必修2] 7806 - 《信息技术》(必修二)P106【课件源代码】凯撒密码算法程序实现程序清单

 关闭 [复制链接]
发表于 2021-9-27 13:08:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
  1. """6 J  [$ H* l5 h! X  K
  2. 《信息技术》(必修二)P106 凯撒密码算法程序教科书所示源代码
    ; `, Y. b+ I6 C
  3. , G+ ?; I! s* w
  4. """
    ) u8 ?$ N" S1 j9 b! G- i6 W5 o
  5. def  change(code,key):
      Q$ m4 J, u% A% P: N8 e4 D8 x
  6.     code= code.lower()7 x: x$ a3 ]) ~/ \
  7.     m = ord(code)/ V. A% m1 S/ b8 [7 s; y
  8.     if m >= 97 and m <= 122:
    5 A! S5 ^: `4 y' R1 {$ B
  9.         m = 97 + ((m - 97) + key) % 26
    * E- Q* X% g( Z
  10.     return chr(m)
    ) R. v$ l. O0 P) s
  11. 6 _! K0 h* b* j4 w
  12. def  encrypt(code,key):* s$ R( e8 I" n  [# E
  13.     code_new =""
    4 N/ Q6 Y, e# w0 I
  14.     for s in code:
    1 n. Z$ @1 S  y
  15.         code_new += change(s,key)4 O% t# c8 q. B1 M6 p. j
  16.     print(code_new)
    ( H; @2 l7 \8 f, o# [
  17.     return code_new
    ) H1 B' o$ K! N/ k* ^4 z+ p
  18. 8 {$ f$ R9 Q# ~
  19. def  decrypt(code,key):! c8 D! |( h0 n" i- k( X& y% N
  20.     code_new =""8 X4 z, K: n; _: M
  21.     for s in code:+ W- t6 h* l0 Z9 t& Z' I; y
  22.         m=ord(s)
    . u# l& F9 E* ^* R6 l
  23.         code_new +=chr(m-key)$ X' p# A" U6 V' f/ c1 @& Z1 f
  24.     print(code_new)
    ' j& u( m5 o  L3 ~; f8 x
  25.     return code_new+ W* Y9 ^  F4 l- C9 N6 W. J7 }

  26. : H& E$ G/ y, G
  27. def main():5 M' h  e& q& h2 i4 _; @) y
  28.     print("请选择数字1或2:")* c8 r0 ~" @3 Y
  29.     print("1:加密")( ^3 S1 u: E* a& \- _' f
  30.     print("2:解密")" y7 T! i$ G, s
  31.     select = input()
    2 e  B$ R/ K7 q% z. C# f- ?6 ~
  32.     if select == "1":
    " \& W( ?- m% G: W( R! m- a8 P3 V
  33.         code = input("请输入加密字符串:")0 }; r8 m% f- M/ b6 {2 Y; J( ~. @
  34.         key = int(input("请输入偏移位数:"))% }. F9 X+ R% ^, H* e' v8 n
  35.         encrypt(code,key)
    ( k1 Q7 `& h/ Y; [/ c: G
  36.     elif select == "2":
    0 a. E7 Q$ _2 q: g+ ?# v
  37.         code = input("请输入解密字符串:")1 p& L9 t6 w$ P
  38.         key = int(input("请输入偏移位数:"))5 ?; V/ U7 Q: {; ]- K
  39.         decrypt(code,key)
    4 m* L9 [4 Y8 d) [( p  z
  40.     else:: T7 L/ M" W, z+ M* j1 q4 J4 b
  41.         print("输入错误,请重试!")3 ^: W4 U2 A- u9 l( v. i" v
  42.         
    , T8 X- U0 N: v; w
  43. if __name__ == '__main__':+ U& |& `# W1 }4 B  N4 J
  44.     main()" A* O# x' b( D9 F& F+ y& F
  45.    
    ( |5 w7 R0 h. n9 s6 i& z# Y7 o# ?
  46. '''
    ( A5 v8 ]* {* x- @* Z* z
  47. 注:该案例所有字符串均加密为小写字母显示,请同学们想一想,如果都想转成大写字母显示该如何修改呢?1 S- x1 {$ n" H0 O) o" O1 X
  48.    
    3 _8 z- W3 }0 x
  49. '''
复制代码

7806-01-01:凯撒密码加解密(原版).py

1.25 KB, 下载次数: 26

默认小写字母显示

7806-01-02:凯撒密码加解密(大写字母版).py

1.09 KB, 下载次数: 25

大写字母修改版

新大榭Python学习社区公益培训、Excel业务指导、办公软件定制、网站建设、网络安全;新大榭Web实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新大榭七周年,感谢由您!

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2024-5-19 15:30 , Processed in 0.072603 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表