
2.6 实践应用
2.6.1 千位数裂变
1. 项目介绍
输入一个任意的千位数,分别输出个数、十位、百位和千位上的值。例如输入一个千位数1314,输出千位数1、百位数3、十位数1、个位数4。
2. 学习目标
(1)掌握input()和print()函数的使用。
(2)掌握Python除法和取余的使用方式。
(3)理解有关数学运算的逻辑思维过程。
3. 项目解析
首先考虑得到数1314千位数的方法:number//1000;然后考虑得到百位数的方法:number%1000//100;再考虑得到十位数的方法:number%100//10;最后考虑得到个位数的方法:number%10。
4. 代码清单
本项目的代码清单如下:

代码说明:
第1行代码——使用input()函数获得用户输入的字符串,并转换为整数。
第2~5行代码——分别获取千位、百位、十位和个位上的数字。
第6~10行代码——使用print()函数输出千位、百位、十位和个位上的数字。
运行程序,其输出结果如下:

2.6.2 恺撒密码加密和解密字符串
1. 项目介绍
恺撒密码是一种最为古老的对称加密体制。在古罗马时,恺撒大帝曾用来对军事情报进行加密和解密。其基本思想是:通过把字母移动一定的位数来实现加密和解密,明文中的所有字母都在字母表上向后按照一个固定数目进行偏移后被替换成密文,而密文中所有字母都在字母表上向前按照一个固定数目进行偏移后被替换成明文。例如,当步长为3时,A被替换成D,B被替换成E,以此类推,X被替换成A:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
2. 学习目标
(1)了解恺撒密码机制加密和解密规则。
(2)掌握使用Python对字符串进行恺撒加密的方法。
(3)掌握对字符串的基本操作方法。
3. 项目解析
加密过程:输入字符串,遍历字符串中的每一个字符,如果该字符P的范围在a~z或A~Z,则执行(P+3)%26,从而得到密文。
解密过程:遍历密文字符串的每一个字符,如果该字符P的范围在a~z或A~Z,则执行(P-3)%26,从而得到明文。
4. 代码清单
本项目的代码清单如下:

代码说明:
第1行代码——获取从控制台上输入的字符串,并赋给orginal。
第3~5行代码——遍历字符串中的每个字符,若该字符范围在A~Z,则将每个字符向后移动3个位置。
第6~7行代码——遍历字符串中的每个字符,若该字符范围在a~z,则将每个字符向后移动3个位置。
第11行代码——使用print()函数输出加密后的密文。
第13~19行代码——对加密后的密文进行解密。
第21行代码——使用print()函数输出解密的明文。
运行程序,其输出结果如下:
