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 |
展示实列代码:关系运算符和逻辑运算符
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 |
展示实列代码:判断零食是否在购物清单类
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 |
展示实列代码:判断三个整数变量是否为同一个对象。
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位,移出位删掉,移进的位补零 |
结束语🥇
以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖

相关文章:
python编程知识(实现数据加密和解密)
👨💻个人主页:开发者-曼亿点 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 曼亿点 原创 👨💻 收录于专栏:…...
如何使div居中?CSS居中终极指南
前言 长期以来,如何在父元素中居中对齐一个元素,一直是一个让人头疼的问题,随着 CSS 的发展,越来越多的工具可以用来解决这个难题,五花八门的招式一大堆,这篇博客,旨在帮助你理解不同的居中方法…...
Redis 篇-深入了解分布式锁 Redisson 原理(可重入原理、可重试原理、主从一致性原理、解决超时锁失效)
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 本章目录 1.0 基于 Redis 实现的分布式锁存在的问题 2.0 Redisson 功能概述 3.0 Redisson 具体使用 4.0 Redisson 可重入锁原理 5.0 Redisson 锁重试原理 6.0 Redisson WatchDo…...
PostgreSQL中的多版本并发控制(MVCC)深入解析
引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力…...
SpringBoot项目-实现简单的CRUD功能和分页查询
背景 本博文主要是创建了一个新的SpringBoot项目,实现基本的增删改查,分页查询,带条件的分页查询功能。是方便初学者学习后端项目的一个比较清晰明了的实践代码,读者可根据博文,从自己动手创建一个新的SpringBoot项目…...
CCF编程能力等级认证GESP—C++2级—20240907
CCF编程能力等级认证GESP—C2级—20240907 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)数位之和小杨的矩阵 单选题(每题 2 分,共…...
C语言手撕实战代码_二叉排序树(二叉搜索树)_构建_删除_插入操作详解
二叉排序树习题1.设计算法构建一棵二叉排序树(又称二叉搜索树BST)2.查找二叉排序树中结点为x的结点所在的层数3.删除二叉排序树T中值为x的结点4.查找二叉排序树中所有小于key的关键字5.编写算法,将一棵二叉树t分解成两棵二叉排序树t1和t2,使得t1中的所有…...
YC教父的创始人模式VS职业经理人模式:AI时代的独立开发者崛起
近年来,由风投资助的创始人模式因其相对较低的入门门槛而在创业圈内广受欢迎。然而,真正的挑战在于独立开发者(一人商业)模式。随着AI技术的飞速发展,一人商业模式有望成为未来的主流。本文将探讨独立开发者的工作范围…...
[SUCTF 2019]Pythonginx
给了源码 app.route(/getUrl, methods[GET, POST]) def getUrl():url request.args.get("url")host parse.urlparse(url).hostnameif host suctf.cc:return "我扌 your problem? 111"parts list(urlsplit(url))host parts[1]if host suctf.cc:retu…...
省市县相关校验sql随笔
1.层级校验 要判断一个给定的省、市、区(县)名字是否符合正确的层级关系,假设你的表结构如下: CREATE TABLE regions (id INT PRIMARY KEY,name VARCHAR(255),parent_id INT, -- 指向上一级区域的id,例如市的parent_id指向省的…...
uniapp ios sticky定位,内部 u-tabs(包含scroll-view)消失问题
uniapp中用sticky定位时,元素内部如果有scroll-view,ios在触发bounce机制时,scroll-view的元素会消失,解决方法是页面上包一层高度为100vh的scroll-view <scroll-view style"height: 100vh;" scroll-y scrolltolowe…...
web群集--nginx配置文件location匹配符的优先级顺序详解及验证
文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中࿰…...
Vivado编译报错黑盒子问题
1 问题描述 “Black Box Instances: Cell **** of type ** has undefined contents and is considered a back box. The contents of this cell must be defined for opt_design to complete successfully.” 检查工程代码提示的模块,该模块为纯手写的Veril…...
【建造者模式】
建造者模式 Builder Pattern 属于创建型模式是将一个复杂对象的构建与它的标识分离,使得同样的构建过程可以创建不同的表示关键点:用户只需要指定需要建造的类型就可以获得对象,建造过程及细节不需要了解 实现 demo 需要构建的对象 Data pu…...
自动化表格处理的革命:智能文档系统技术解析
在当今数据驱动的商业环境中,表格数据的自动化处理成为了企业提高效率、降低成本的关键。企业智能文档系统在智能表格识别方面展现出卓越的性能,通过精准识别和处理各种通用表格,显著提升了企业文档管理的智能化水平。本文将深入探讨该系统在…...
【Hot100】LeetCode—394. 字符串解码
目录 1- 思路栈实现四种情况处理 2- 实现⭐394. 字符串解码——题解思路 3- ACM 实现 原题链接:394. 字符串解码 1- 思路 栈实现四种情况处理 ① 遇到数字,进行倍数相加 、②遇到左括号,压栈之前的元素、③遇到右括号弹出,栈进行…...
12. 如何在MyBatis中进行分页查询?常见的分页实现方式有哪些?
在MyBatis中,分页查询是一种常见的需求,尤其是在处理大数据量的情况下。MyBatis本身不直接提供分页功能,但可以通过以下几种常见的实现方式来实现分页查询。 1. 手动分页 这是最基本的分页方式,直接在SQL语句中添加分页参数。不同…...
@[TOC](力扣题目-滑动窗口-qsort排序-二分法查找)
通信 LCR 009. 乘积小于 K 的子数组268. 丢失的数字287. 寻找重复数 LCR 009. 乘积小于 K 的子数组 已解答 滑动窗口 给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。 示例 1: 输入: nums [10,5,2,6], k 100 输出: 8 解释…...
Docker容器相关命令
Docker是一种容器化技术,可以帮助用户更轻松地创建、部署和管理容器。下面是一些常见的Docker容器管理任务: 创建容器:使用Docker镜像创建一个新的容器。 docker run image_name列出容器:查看当前运行的容器列表。 docker ps启动容…...
【老课推荐】基于LangChain和知识图谱的大模型医疗问答机器人项目
在当今数据驱动和人工智能主导的时代,大模型和知识图谱的结合是一个重要的研究和应用方向。大模型实战课程通过48课时,分为六个主要章节,涵盖了从基本概念到高级应用的多方面内容。学员将通过本课程学习如何使用LangChain和OpenAI进行开发&am…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
