新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

查看: 298|回复: 0

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

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

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

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

x
  1. """3 @- z" Y  i7 i/ {& J+ J
  2. 《信息技术》(必修二)P106 凯撒密码算法程序教科书所示源代码6 l3 A6 ^" v( f6 T$ [+ Q# u! N4 c8 J

  3. # J% o! r: O( x7 ~& N
  4. """' w" V7 \; [4 w6 }
  5. def  change(code,key):8 K7 ?. E, g& R% c& B
  6.     code= code.lower()
    : m4 V: n. t0 ?7 q( [
  7.     m = ord(code)
    # D  v# Y# ]0 K; e6 N
  8.     if m >= 97 and m <= 122:
    4 G- H) A) K: [, r. M% h8 @  ~
  9.         m = 97 + ((m - 97) + key) % 26 4 m8 |# a, y/ m' @% M; F
  10.     return chr(m)! i( S1 L+ n5 w& {6 ]3 o

  11. 7 V9 B- v/ \7 C
  12. def  encrypt(code,key):
    + k" O% I8 y# M! p/ G4 }$ v
  13.     code_new =""4 ?. ^5 |$ V* p# U) J0 U
  14.     for s in code:' s7 w  R! O% l' K6 v
  15.         code_new += change(s,key)! ^- x  @# R/ M) r: A, ^6 m0 ]
  16.     print(code_new)
    1 B, k, H% H3 B* ?2 w9 q
  17.     return code_new/ s7 \& |; Y0 n& Z+ `
  18. ' h! o+ V2 b" w3 Q- S" r& E4 C) }
  19. def  decrypt(code,key):8 m( V" s, P" [& v9 |; E
  20.     code_new ="", w$ @2 q$ N' c+ I
  21.     for s in code:
    " Y2 k4 H% x' D. i2 c$ |
  22.         m=ord(s)
    % g. Z/ j  A, l1 X3 Q, O& {$ U
  23.         code_new +=chr(m-key)
    * s6 M6 X9 p8 j  V
  24.     print(code_new)$ a9 t% U1 E0 V, @
  25.     return code_new
    8 H8 P$ x1 n! B) i4 h
  26. * R% `/ Y2 N; T. n  |; ~# J5 _& u, ~
  27. def main():' P: [; W% i% r' P, s* y$ Q* ?
  28.     print("请选择数字1或2:")0 r3 D  I! N: f& U( s  ~
  29.     print("1:加密")9 d9 P4 @# x, }+ b
  30.     print("2:解密")' _3 L! U" q- ]+ e1 C# Q
  31.     select = input()
    2 S6 W" R, y3 I3 u$ j  w8 B1 b0 c
  32.     if select == "1":
    ( y6 Y, `& ?6 F5 p7 y1 H* d
  33.         code = input("请输入加密字符串:")
    ; u2 U( J; ]; T* k$ E4 i" A$ ]+ g
  34.         key = int(input("请输入偏移位数:"))% l2 t, w- m/ m
  35.         encrypt(code,key)
      ~  L4 F% j, Z2 B' J+ `. z
  36.     elif select == "2":
    ( _3 s8 q/ E, M
  37.         code = input("请输入解密字符串:")
    * y, i9 ], K7 f
  38.         key = int(input("请输入偏移位数:")): B7 B' W; Y* Z( E* \
  39.         decrypt(code,key)/ }9 Z$ E0 j4 O& z& R
  40.     else:/ P5 i+ n+ r; s+ N% G- `4 r! c7 k7 T; ^
  41.         print("输入错误,请重试!")% {1 x# u) D5 ]) u% j
  42.         
    . w4 h# L1 C& n9 c
  43. if __name__ == '__main__':
    - m) p# q& Y% _3 p% h* i
  44.     main()7 L" p2 ?. R) @) K& C3 V) {
  45.     ) B& {" X3 |* k3 q$ p. f
  46. '''
    ; _% j  p1 T" k& I+ h$ a2 g, T; I
  47. 注:该案例所有字符串均加密为小写字母显示,请同学们想一想,如果都想转成大写字母显示该如何修改呢?$ X* M' c5 u/ ^
  48.    
    " F( e5 V- r$ i# g& u
  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-16 04:01 , Processed in 0.070410 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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