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…...

Adobe Sensei——自动化视频编辑、特效应用和素材增强,通过AI技术快速优化视频内容,自动修复视频质量、自动添加背景音乐或字幕
一、Adobe Sensei介绍 Adobe Sensei 是 Adobe 公司开发的一款基于人工智能和机器学习技术的平台,旨在增强其各种创意、文档和体验管理工具。Adobe Sensei 通过深度学习、计算机视觉、自然语言处理(NLP)等先进技术,帮助用户在 Ado…...

【AIGC数字人】EchoMimic:基于可编辑关键点条件的类人音频驱动肖像动画
GitHub:https://github.com/BadToBest/EchoMimic 论文: https://arxiv.org/pdf/2407.08136 comfyui: https://github.com/smthemex/ComfyUI_EchoMimic 相关工作 Wav2Lip Wav2Lip是一个开创性的工作 ,但输出会出现面部模糊或扭…...

变量数据类型 Day3
1. 变量 1.1 变量的概念 变量是计算机内存中的一块存储单元,是存储数据的基本单元变量的组成包括:数据类型、变量名、值,后文会具体描述变量的本质作用就是去记录数据的,比如说记录一个人的身高、体重、年龄,就需要去…...

SpringBoot2:请求处理原理分析-RESTFUL风格接口
一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…...

[Linux][配置]Linux修改history存储的最大记录数
Linux修改History最大记录为20000行 sed -i s/^HISTSIZE1000/HISTSIZE20000/ /etc/profile source /etc/profile 在 Linux 系统中,HISTSIZE 环境变量用于定义历史记录的大小,即在终端中可以回溯的命令数量。默认情况下,这个值通常是 1000&…...

代码随想录 刷题记录-28 图论 (5)最短路径
一、dijkstra(朴素版)精讲 47. 参加科学大会 思路 本题就是求最短路,最短路是图论中的经典问题即:给出一个有向图,一个起点,一个终点,问起点到终点的最短路径。 接下来讲解最短路算法中的 d…...

大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

C++复习day04
一、函数重载 1.什么是函数重载? 自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重 载了。 比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用…...

[苍穹外卖]-04菜品管理接口开发
效果预览 新增菜品 需求分析 查看产品原型分析需求, 包括用到哪些接口, 业务的限制规则 业务规则 菜品名称必须是唯一的菜品必须属于某个分类下, 不能单独存在新增菜品时可以根据情况选择菜品的口味每个菜品必须对应一张图片 接口设计 根据类型查询分类接口 文件上传接口 …...

gitlab 启动/关闭/启用开机启动/禁用开机启动
文章目录 启动 gitlab关闭 gitlab查看 gitlab 运行状态启用 gitlab 开机启动禁用 gitlab 开机启动GitlabGit启动 gitlab hxstrive@localhost:~$ sudo gitlab-ctl start ok: run: alertmanager: (pid 65953) 0s ok: run: gitaly: (pid 65965) 0s ok: run: gitlab-exporter: (pi…...