|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
- """3 @- z" Y i7 i/ {& J+ J
- 《信息技术》(必修二)P106 凯撒密码算法程序教科书所示源代码6 l3 A6 ^" v( f6 T$ [+ Q# u! N4 c8 J
# J% o! r: O( x7 ~& N- """' w" V7 \; [4 w6 }
- def change(code,key):8 K7 ?. E, g& R% c& B
- code= code.lower()
: m4 V: n. t0 ?7 q( [ - m = ord(code)
# D v# Y# ]0 K; e6 N - if m >= 97 and m <= 122:
4 G- H) A) K: [, r. M% h8 @ ~ - m = 97 + ((m - 97) + key) % 26 4 m8 |# a, y/ m' @% M; F
- return chr(m)! i( S1 L+ n5 w& {6 ]3 o
7 V9 B- v/ \7 C- def encrypt(code,key):
+ k" O% I8 y# M! p/ G4 }$ v - code_new =""4 ?. ^5 |$ V* p# U) J0 U
- for s in code:' s7 w R! O% l' K6 v
- code_new += change(s,key)! ^- x @# R/ M) r: A, ^6 m0 ]
- print(code_new)
1 B, k, H% H3 B* ?2 w9 q - return code_new/ s7 \& |; Y0 n& Z+ `
- ' h! o+ V2 b" w3 Q- S" r& E4 C) }
- def decrypt(code,key):8 m( V" s, P" [& v9 |; E
- code_new ="", w$ @2 q$ N' c+ I
- for s in code:
" Y2 k4 H% x' D. i2 c$ | - m=ord(s)
% g. Z/ j A, l1 X3 Q, O& {$ U - code_new +=chr(m-key)
* s6 M6 X9 p8 j V - print(code_new)$ a9 t% U1 E0 V, @
- return code_new
8 H8 P$ x1 n! B) i4 h - * R% `/ Y2 N; T. n |; ~# J5 _& u, ~
- def main():' P: [; W% i% r' P, s* y$ Q* ?
- print("请选择数字1或2:")0 r3 D I! N: f& U( s ~
- print("1:加密")9 d9 P4 @# x, }+ b
- print("2:解密")' _3 L! U" q- ]+ e1 C# Q
- select = input()
2 S6 W" R, y3 I3 u$ j w8 B1 b0 c - if select == "1":
( y6 Y, `& ?6 F5 p7 y1 H* d - code = input("请输入加密字符串:")
; u2 U( J; ]; T* k$ E4 i" A$ ]+ g - key = int(input("请输入偏移位数:"))% l2 t, w- m/ m
- encrypt(code,key)
~ L4 F% j, Z2 B' J+ `. z - elif select == "2":
( _3 s8 q/ E, M - code = input("请输入解密字符串:")
* y, i9 ], K7 f - key = int(input("请输入偏移位数:")): B7 B' W; Y* Z( E* \
- decrypt(code,key)/ }9 Z$ E0 j4 O& z& R
- else:/ P5 i+ n+ r; s+ N% G- `4 r! c7 k7 T; ^
- print("输入错误,请重试!")% {1 x# u) D5 ]) u% j
-
. w4 h# L1 C& n9 c - if __name__ == '__main__':
- m) p# q& Y% _3 p% h* i - main()7 L" p2 ?. R) @) K& C3 V) {
- ) B& {" X3 |* k3 q$ p. f
- '''
; _% j p1 T" k& I+ h$ a2 g, T; I - 注:该案例所有字符串均加密为小写字母显示,请同学们想一想,如果都想转成大写字母显示该如何修改呢?$ X* M' c5 u/ ^
-
" F( e5 V- r$ i# g& u - '''
复制代码 |
|