python编程知识(实现数据加密和解密)


👨‍💻个人主页@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏机器学习

⭐🅰⭐

---


文章目录

    • ⭐🅰⭐
    • ⭐前言⭐
    • [🎶 一、算术运算符](#🎶 一、算术运算符)
    • [🎶 二、赋值运算符](#🎶 二、赋值运算符)
    • [🎶 三、关系运算符](#🎶 三、关系运算符)
    • [🎶 四、逻辑运算符](#🎶 四、逻辑运算符)
    • [🎶 五、成员运算符](#🎶 五、成员运算符)
    • [🎶 六、身份运算符](#🎶 六、身份运算符)
    • [🎶 七、位运算符](#🎶 七、位运算符)

⭐前言⭐

数据加密是通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。本任务将带领大家编写Python程序,通过对数据进行运算实现简单的加密和解密。

数据的运算通过运算符来完成,运算符用于连接表达式中各种类型的数据、变量等操作数。Python 支持多种类型的运算符,包括算术运算符、赋值运算符、关系运算符、逻辑运算符、成员运算符、身份运算符和位运算符等。


🎶 一、算术运算符


Python 提供了7个基本的算术运算符,其运算方式与数学中基本类似。具体符号如表示。

运算符 名称 示列 说明
+ 加法运算 a+b 返回a和b的和
- 减法运算 a-b 返回a和b的和差
* 乘法运算 a*b 返回a和b的积
/ 除法运算 a/b 返回a和b的商
% 取模预算 a%b 返回a和b的余数
** 幂(乘方预算) a**b 返回a和b的次幂
// 整除 a//b 返回a和b的商的整数部分(向下取整)。如果其中一个操作数为负数,则结果为负数。例如,3//4-0,4//3-1,-3//4--1,4//-3=-2

🎶 二、赋值运算符


赋值运算符用来给变量赋值,Python 提供的赋值运算符可分为简单赋值和复合赋值两简单赋值运算符"="已经在任务一中介绍了,下面着重介绍复合赋值运算符。

在 Pyton 中,经常会有利用变量的原有值计算出新值并重新赋值给这个变量的情况。例如,下面表达式就是把变量a的值加上1后再赋值给a。

a=a+1

复合赋值运算符允许缩短这个表达式,使用"±"运算符,可以将上面的表达式简写为:

a += 1        #相当于a=a+1

其中,复合赋值运算符中较为常用的是复合算术赋值运算符,包括+=、-+、*=、/=、%=、**=和//=共7种。例如:

a += b        #相当于a=a+b

a -= b         #相当于a=a-b

a * = b        #相当于a=a*b

a /= b        #相当于a=a/b

a %=b         #相当于a=a%b

a * *= b        # 相当于a=a * *b

a //= b          #相当于a=a///b

温馨提示:

如果b是包含若干项的表达式,则相当于它有括号,例如:

a*=b-3      #相当于a=a*(b-3)


🎶 三、关系运算符


关系运算符又称比较运算符,用于比较运算符两侧数据的值,比较的结果是一个布尔值,即 True 或 False。Python 提供的关系运算符如表所示。

运算符 名称 示列 说明
= 等于 a=b 判断a和b的值是否相等,如果是则结果为True否则为 False
!= 不等于 a!=b 判断a和b的值是否不相等,如果不相等则结果为True,否则为 False
> 大于 a>b 判断a的值是否大于b的值,如果是则结果为True,否则为 False
< 小于 a<b 判断a的值是否小于b的值,如果是则结果为True,否则为False
>= 大于等于 a>=b 判断a的值是否大于等于b的值,如果是则结果为True,否则为False
<= 小于等于 a<=b 判断a的值是否小于等于b的值,如果是则结果为True,否则为 False

使用关系运算符时须注意以下几点。

(1)等于、不等于、大于等于、小于等于运算符(=-、!=、>=、<=)的表示方法与数学中的表示方法不同(=、≠、≥、≤)。

(2)关系运算符两侧的值可以是数值、字符串等数据类型,但应为同一类型。

(3)字符串数据进行比较运算时,按照其内容的ASCI码值进行比较。在比较两个字符串时,先比较第一个字符,其中ASCI码值较大的字符所在字符串较大,如果第一个字符相同,再比较第二个字符......。

例如,'abce'>'abcdef为True,是因为逐个比较前三个字符,其 ASCI 码值相同,在比较第四个字符时,"e"的 ASCI 码值大于"d"的 ASCI 码值,因此,该表达式的值为True。(注意:不是比较字符串长短)


🎶 四、逻辑运算符


pyton 的逻辑运算符包括 and(与)、or(或)、not(非)3种,如表所示。与C/C+t、Java 等语言不同的是,Python中逻辑运算的返回值不一定是布尔值。

运算符 名称 示列 说明
and a and b 如果a的值为False,无须计算b的值,返回a的值:否则返回b的值
or a or b 如果a的值为Tnue,无须计算b的值,返回a的值;否则返回b的值
not not a 如果a的值为Tnue,返回值为False:如果a的值为False,返回值为 True

展示实列代码:关系运算符和逻辑运算符

javascript 复制代码
a = 5         #定义变量 a,赋值为 5
b = 6         #定义变量b,赋值为6
#输出逻辑表达式的值
print('a=',a,',b=',b)
print('a-5 and b<3=',a - 5 and b < 3)
print('a<6 and b + 3 =',a < 6 and b + 3)
print('a-5or b<3=',a-5 or b < 3)
print('a<6 or b+ 3=',a<6 or b + 3)
print('not a=',not a)

运行结 果:

【代码解析】计算"a-5 and b<3"表达式时,先计算"a-5"得到的值为0,即为 False,因此无须计算"b<3"的值,表达式的值即为0。计算"a<6andb+3"表达式时,先计算"a<6"得到的值为True,因此,需计算表达式"b+3"的值,且整个表达式的值为"b+3"的值,即为9。

计算"a-5 orb<3"表达式时,先计算"a-5"得到的值为0,即为False,因此,需计算"b<3"的值,且整个表达式的值为"b<3"的值,即为False。计算"a<6orb+3"表达式时,先计算"a<6"得到的值为True,无须计算"b+3"的值,表达式的值为 True。

计算"nota"表达式时,由于a的值为5,即为True,因此,表达式的值为False。

温馨提示:

在 Python 中,当参与逻辑运算的数值为0时,则将它看作逻辑"假",而将所有非0的数值都看作逻辑"真"。


🎶 五、成员运算符


成员运算符用于判断一个元素是否在某个序列中,如字符串、列表、元组等。Python提供的成员运算符如表所示。

运算符 示列 说明
int a in b 如果a在b序列中,则返回 True,否则返回 False
not in a not in b 如果a不在b序列中,则返回True,否则返回 False

展示实列代码:判断零食是否在购物清单类

javascript 复制代码
snack1='薯片'
#定义零食变量 snack2,赋值为"棒棒糖"
snack2='棒棒糖'
#定义购物清单列表 snackList
snackList =['可乐','苹果','薯片','奥利奥','鸡腿']
#判断著片是否在购物清单中
print('薯片在购物清单中?',snack1 in snackList)#判断棒棒糖是否在购物清单中
print('棒棒糖在购物清单中?',snack2 in snackList)
#判断棒棒糖是否不在购物清单中
print('棒棒糖不在购物清单中?',snack2 not in snackList)

结果展示:


🎶 六、身份运算符


关系运算符中的"--"是比较两个变量的值是否相等。身份运算符用来判断两个变最是否指向同一个内存对象。Python 提供的身份运算符如表 所示。

运算符 示列 说明
is a is b 如果a和b引用的是同一个对象则返回True,否则返回 False
is not a is not b 如果a和b引用的不是同一个对象则返回 True,否则返回 False

展示实列代码:判断三个整数变量是否为同一个对象。

javascript 复制代码
int1 = 500   #定义变量 int1,赋值为 500
int2 = 500   #定义变量 int2,赋值为 500
int3= 520   #定义变量 int3,赋值为 520
print('int1和int2引用的是同一对象?',int1 is int2)
print('int1和int3 引用的是同一对象?',int1 is int3)
print('int1的内存地址:',id(int1),'\nint2的内存地址:',id(int2),'nint3的内存地址:',id(int3))
int1 = 520   #修改 int1 的值为 520
print('修改值后的 int1和 int3引用的是同一对象?',int1 is int3)
print('修改值后的intl内存地址:',id(int1))

运行结果如下:

温馨提示:

Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python 中的小整数是指在[-5,256]区间的整数,这些整数对象是提前创建好的,不会被回收。在一个 Python 程序中,所有相同的小整数都是同一个对象。当数值不在小整数对象池内时,会自动创建新的对象。但是,此时会有一个大整数池,即处于同一个代码块(一个代码块就是一个.py 文件)的相同的大整数是同一个对象。

同理,Python 中相同的单个字符也是同一个对象,处于同一个代码块的相同的浮点数,以及具有相同元素的字符串和元组都是同一个对象。


🎶 七、位运算符


所谓位运算是指进行二进制位的运算。例如,将一个存储单元中的各二进制位左移或右移一位。Python 提供的位运算符包括按位与、按位或、按位异或、按位取反、左移和右移共6种,如表所示。

运算符 名称 示列 说明
& 按位与 a&b a和b对应的两个二进制位均为1时,结果才为1,否则为0
1 按位或 a1b a和b对应的两个二进制位有一个为1时,结果就为1,否则为 0
^ 按位异或 a^b a和b对应的两个二进制位不同时,结果为1,否则为0
~ 按位取反 a~b 先求a的补码,然后将补码的每个二进制位取反,最后再求补码
<< 左移 a<<b a的二进制位全部左移b位,移出位删掉,移进的位补零
>> 右移 a>>b a的二进制位全部右移b位,移出位删掉,移进的位补零
结束语🥇

以上就是机器学习

持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习

你们的支持就是曼亿点创作的动力💖💖💖

相关推荐
无尽的大道7 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒11 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio20 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE22 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻26 分钟前
WPF中的依赖属性
开发语言·wpf
洋24034 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙36 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点37 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
NoneCoder1 小时前
Java企业级开发系列(1)
java·开发语言·spring·团队开发·开发
苏三有春1 小时前
PyQt5实战——UTF-8编码器功能的实现(六)
开发语言·qt