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位,移出位删掉,移进的位补零
结束语🥇

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/419236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html 页面引入 vue 组件之 http-vue-loader.js

一、http-vue-loader.js http-vue-loader.js 是一个 Vue 单文件组件加载器&#xff0c;可以让我们在传统的 HTML 页面中使用 Vue 单文件组件&#xff0c;而不必依赖 Node.js 等其他构建工具。它内置了 Vue.js 和样式加载器&#xff0c;并能自动解析 Vue 单文件组件中的所有内容…

JDK 8 升级 17 及 springboot 2.x 升级 3.x 指南

文章目录 JDK 8 升级 17简介javax.* 包移到 jakarta.*maven pom 中更新 java 版本 springboot 2.x 升级 3.xspring-boot 与 cloud、alibaba-cloud 的版本对应redis 默认配置调整SpringBoot 3.x 整合 Querydsl其他注意事项 maven 及 maven 插件的版本升级maven 版本升级maven-co…

HUAWEI华为MateBook B5-420 i5 集显(KLCZ-WXX9,KLCZ-WDH9)原装出厂Windows10系统文件下载

适用型号&#xff1a;KLCZ-WXX9、KLCZ-WDH9 链接&#xff1a;https://pan.baidu.com/s/12xnaLtcPjZoyfCcJUHynVQ?pwdelul 提取码&#xff1a;elul 华为原装系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、华为浏览器、Office办公软件、华为…

握 手 问 题

目录 一&#xff1a;问题描述 二&#xff1a;思路: 三&#xff1a;代码&#xff1a; 四&#xff1a;结果&#xff1a;1204 一&#xff1a;问题描述 小蓝组织了一场算法交流会议&#xff0c;总共有50 5050 人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照…

C++解决:求排列数

描述 输入两个整数m,n&#xff0c;求m个数字中选n个数的排列数。&#xff08;1<n<m<50&#xff09; 输入描述 两个正整数m和n。 输出描述 一个正整数表示排列数。 用例输入 1 6 5 用例输出 1 720 AC code #include<bits/stdc.h> using namespace s…

Avatar 高清图传

Avatar HD VTX 是一款数字视频发射器&#xff0c;专为与 Caddx/Walksnail 的 Avatar HD 系统配合使用而设计。最初以 Walksnail 品牌销售&#xff0c;实际上是 CaddX FPV 的一部分。 这些 VTX 设计用于 Caddx/Walksnail 的 Avatar HD 系统&#xff0c;并可与 Avatar HD Goggle…

【OpenWrt(3)】内网搭建iperf3测速服务器

下载的iperf3 网站&#xff1a;https://iperf.fr/iperf-download.php Window地址&#xff1a;https://github.com/ar51an/iperf3-win-builds 安卓&#xff1a;https://gitee.com/hiyanyx/magic-i-perf 文章目录 下载的iperf3Windows 服务器启动安卓客户端启动参考 Windows 服务…

利士策分享,如何规划多彩的大学生活?

利士策分享&#xff0c;学习规划多彩的大学生活 踏入大学&#xff0c;如同开启一场充满未知与可能的旅程。 为了让这段旅程不仅充满学术的熏陶&#xff0c;还洋溢着生活的多彩与人际的和谐&#xff0c;我们需要精心规划&#xff0c;积极行动。 一、多彩规划&#xff1a;点亮大学…

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 知识点 1. 散列查找 散列查找是一种高效的查找方法&#xff0c;它通过散列函数将关键字映射到数组的一个位置&#xff0c;从而实现快速查找。这种方法的时间复杂度平均为…

【小沐学OpenGL】Ubuntu环境下glut的安装和使用

文章目录 1、简介1.1 OpenGL简介1.2 glut简介1.3 freeglut 2、glut安装2.1 命令安装glut2.2 源码安装glut 3、glut测试3.1 测试1&#xff0c;版本打印3.2 测试2&#xff0c;绘制三角形3.3 测试3&#xff0c;VBO绘制三角形 结语 1、简介 1.1 OpenGL简介 OpenGL作为图形界的工业…

2024最新!Facebook手机版和网页版改名教程!

Facebook作为全球最大的社交平台之一&#xff0c;允许用户自定义名字和昵称。在Facebook更新姓名可以帮助您更好的展现账号形象。本文将为您提供详细的步骤指导&#xff0c;帮助您在手机APP和网页版上轻松完成Facebook改名操作。 Facebook手机版改名 打开Facebook APP并登录账号…

构建模块化的FastAPI应用: 从用户认证到角色控制

实现了用户身份验证及角色授权的基本功能。具体来说&#xff0c;当用户尝试访问某些资源时&#xff0c;系统会首先验证用户的身份&#xff0c;然后根据用户的角色来决定是否允许访问特定资源。例如&#xff0c;普通用户只能访问自己的信息&#xff0c;而管理员可以访问额外的管…

UnLua调用C++函数

一、UnLua调用C全局静态函数 1、新建C类MyLuaUtils&#xff0c;继承BlueprintFunctionLibrary,实现全局静态函数GetInt。 MyLuaUtils.h UCLASS() class LUASHOOTING_API UMyLuaUtils : public UBlueprintFunctionLibrary {GENERATED_BODY()UFUNCTION(BlueprintCallable)static…

Python 神器:wxauto 库——解锁微信自动化的无限可能

&#x1f4dd;个人主页&#x1f339;&#xff1a;誓则盟约 ⏩收录专栏⏪&#xff1a;机器学习 &#x1f921;往期回顾&#x1f921;&#xff1a;“探索机器学习的多面世界&#xff1a;从理论到应用与未来展望” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f…

GPIO 简介(STM32F407)

一、GPIO简介 什么是GPIO GPIO即通用输入输出端口&#xff0c;全称General Purpose Input Output&#xff0c;是控制或者采集外部器件的信息的外设&#xff0c;即负责输入输出。 它按组分配存在&#xff0c;每组最多16个IO口&#xff0c;组数视芯片而定。比如STM32F407ZGT6是…

【Python】Python 读取Excel、DataFrame对比并选出差异数据,重新写入Excel

背景&#xff1a;我在2个系统下载出了两个Excel&#xff0c;现在通过对下载的2个Excel数据&#xff0c;并选出差异数据 从新写入一个新的Excel中 differences_url rC:\Users\LENOVO\Downloads\differences.xlsx; //要生成的差异Excel的位置及名称 df1_url rC:\Users\LENOVO\Dow…

大数据新视界--大数据大厂之Java 与大数据携手:打造高效实时日志分析系统的奥秘

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Spring源码(3)Aware接口、初始化和销毁方法、@Scope、@Primary

1、目标 本文的主要目标是学习Spring源码中Aware接口、初始化和销毁方法、Scope注解、Primary注解的使用 2、Aware接口 Component public class MyBeanAware implements BeanNameAware, ApplicationContextAware {Overridepublic void setBeanName(String name) {System.out…

从JavaScript入门Go三

前情提要 上一章中我们讲了Go中的变量与函数&#xff0c;这一节我们说说Go中的逻辑语法for、if、switch。最近正好有空&#xff0c;正好给大家更新一下入门的第三章。 PS&#xff1a;没看过的第一章、第二章的小伙伴&#xff0c;可以进入下面的链接查看 从JavaScript入门Go一 从…

计算机毕业设计 | vue+springboot在线投稿管理 稿件文章报社管理系统 (附源码)

1&#xff0c;绪论 1.1 行业趋势与需求 随着互联网的发展和普及&#xff0c;越来越多的出版社、杂志社和媒体开始采用在线投稿系统。这种系统提供了一个便捷的平台&#xff0c;让作者可以直接将他们的文章提交到相应的出版机构&#xff0c;而无需邮寄或亲自递交稿件。这不仅节…