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中逻辑运算的返回值不一定是布尔值。

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

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

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提供的成员运算符如表所示。

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

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

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

结果展示:
在这里插入图片描述


🎶 六、身份运算符


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

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

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

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&ba和b对应的两个二进制位均为1时,结果才为1,否则为0
1按位或a1ba和b对应的两个二进制位有一个为1时,结果就为1,否则为 0
^按位异或a^ba和b对应的两个二进制位不同时,结果为1,否则为0
~按位取反a~b先求a的补码,然后将补码的每个二进制位取反,最后再求补码
<<左移a<<ba的二进制位全部左移b位,移出位删掉,移进的位补零
>>右移a>>ba的二进制位全部右移b位,移出位删掉,移进的位补零
结束语🥇

以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

  • 49
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼亿点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值