1 反转加密法
主要内容:
- len()函数
- while循环
- 布尔函数类型
- 比较运算符
- 条件
- 代码块
1.1 反转加密法描述
- 反转加密法通过反向输出消息进行加密
1.2 反转加密法程序的源代码
# Reverse Cipher
message = 'There can keep a secret, if two of them are dead.'
translated = ''
i = len(message) - 1
while i>=0:
translated = translated + message[i]
i = i - 1
print(translated)
.daed era meht fo owt fi ,terces a peek nac erehT
1.3 运行反转加密法程序
- 运行程序得到输出为:.daed era meht fo owt fi ,terces a peek nac erehT
- 要想解密这条消息,把“.daed era meht fo owt fi ,terces a peek nac erehT”粘贴到message中
# Reverse Cipher2
message = '.daed era meht fo owt fi ,terces a peek nac erehT'
translated = ''
i = len(message) - 1
while i>=0:
translated = translated + message[i]
i = i - 1
print(translated)
There can keep a secret, if two of them are dead.
1.4 这个程序如何工作
# Reverse Cipher2
注释说明这个程序做什么
message = 'There can keep a secret, if two of them are dead.'
我们把希望保存的字符串存入message向量,每当希望加密或解密一个新的字符串时,直接输入进去即可
translated = ''
translated变量是程序保存反转的字符串的地方,开始时保存一个空字符串。
- 空字符串是两个单引号,而不是一个双引号
1.5 len()函数
i = len(message) - 1
- len()函数接收一个字符串值参数,返回一个整数值,表示这个字符串中有多少字符,也就是这个字符串的长度。
- 空格和标点符号也算入字符串长度
1.6 while循环简介
while i>=0:
- 这称为while循环或称为while语句。一个while循环由4个部分组成:
- while关键字
- 一个计算得到True或False布尔值的表达式(又称为条件)
- 一个冒号(:)
- 一块缩进的代码
1.7 布尔数据类型
- 布尔数据类型只有True和False两个值,这些值是大小写敏感的。
- 和其他数据类型 的值一样,布尔值也可以保存在变量里。
spam = True
spam
True
spam = False
spam
False
1.8 比较运算符
- 比较运算符用来比较两个值,计算得到True或False布尔值
- < 小于
- >>> 大于
- <= 小于或等于
- >=>=>= 大于或等于
- == 等于
- != 不等于
1.9 条件
- 条件是在while语句或if语句中使用的表达式的别称。条件通常包含比较运算符,但条件仍然只是表达式。
1.10 代码块
- 一个代码块是一行或多行代码组合起来,有着相同的最小缩进量,可以通过观察这行的缩进来判断一个代码块的起止。
1.11 while循环语句
while i>=0:
translated = translated + message[i]
i = i - 1
print(translated)
- 如果条件计算得到True,那么程序的执行就会进入while语句后面的代码块
- 如果条件计算得到False,那么程序的执行就会跳过后面这个代码块里的代码,跳到这个代码块后面的第一行代码
- 如果条件是True,程序的执行将从这个代码块的顶部开始,向下依次执行每行。在到达这个代码块底部时,程序的执行会回到前面的while语句,再次检查这个条件。如果依然是True,执行会再次跳入代码块。如果是False,程序的执行将会跳过它。
1.12 “增长”一个字符串
在while循环里加入新的代码:
while i>=0:
translated = translated + message[i]
print(i, message[i], translated)
i = i - 1
print(translated)
通过循环的每次迭代输出i, message[i], translated三个表达式,看translated表示式是怎么增长的:
message = '.daed era meht fo owt fi ,terces a peek nac erehT'
translated = ''
i = len(message) - 1
while i>=0:
translated = translated + message[i]
print(i, message[i], translated)
i = i - 1
print(translated)
48 T T
47 h Th
46 e The
45 r Ther
44 e There
43 There
42 c There c
41 a There ca
40 n There can
39 There can
38 k There can k
37 e There can ke
36 e There can kee
35 p There can keep
34 There can keep
33 a There can keep a
32 There can keep a
31 s There can keep a s
30 e There can keep a se
29 c There can keep a sec
28 r There can keep a secr
27 e There can keep a secre
26 t There can keep a secret
25 , There can keep a secret,
24 There can keep a secret,
23 i There can keep a secret, i
22 f There can keep a secret, if
21 There can keep a secret, if
20 t There can keep a secret, if t
19 w There can keep a secret, if tw
18 o There can keep a secret, if two
17 There can keep a secret, if two
16 o There can keep a secret, if two o
15 f There can keep a secret, if two of
14 There can keep a secret, if two of
13 t There can keep a secret, if two of t
12 h There can keep a secret, if two of th
11 e There can keep a secret, if two of the
10 m There can keep a secret, if two of them
9 There can keep a secret, if two of them
8 a There can keep a secret, if two of them a
7 r There can keep a secret, if two of them ar
6 e There can keep a secret, if two of them are
5 There can keep a secret, if two of them are
4 d There can keep a secret, if two of them are d
3 e There can keep a secret, if two of them are de
2 a There can keep a secret, if two of them are dea
1 d There can keep a secret, if two of them are dead
0 . There can keep a secret, if two of them are dead.
There can keep a secret, if two of them are dead.