Python基础学习笔记(四)——运算符

目录

  • 算术运算符
    • 1. 四则运算
    • 2. 整除
    • 3. 取模
    • 4. 求幂
  • 赋值运算符
    • 1. 链式赋值
    • 2. 参数赋值
    • 3. 系列解包赋值
  • 关系运算符
  • 身份运算符
  • 成员运算符
  • 逻辑运算符
  • 位运算符
    • 1. 按位运算
    • 2. 移位运算
  • 优先级

算术运算符

1. 四则运算

# 加减乘除:除法结果为浮点数
print(1+2, 1-2, 1*2, 2/1)
3 -1 2 2.0


2. 整除

# 向下取整
print(11//2, 11//-2)
5 -6


3. 取模

  对于含有负数的取模运算,有以下规律:余数与除数的符号相同,余数的绝对值小于除数的绝对值。可以先取绝对值作取模运算,若结果不满足上述,则加上除数的整数倍,直至相符。

  也可以套用公式:余数=被除数-除数*整除商

# a % b = a-b*(a//b)
print(9 % 4, 9 % -4, -9 % 4)
1 -3 3


4. 求幂

print(2**3, 3**2)
8 9


赋值运算符

  右边的值赋给左边的变量,运算符为=.

1. 链式赋值

  链式赋值定义的变量共用一个内存地址,即不同的变量名指向的内存空间相同。

a = b = c = 0


2. 参数赋值

  参数赋值的运算符的组成为:算术运算符 + =,即左边变量的值与右边的值作对应数值运算后,再把结果赋给变量

a = 7
a **= 2
print(a)
49


3. 系列解包赋值

  = 两侧的变量和值用逗号隔开,从左到右依次对应赋值变量和值的数量必须相同,否则无法解包并报错,但左侧可存在相同变量

# 系列解包赋值
a, b, c = 1, 2, 3
print(a, b, c)
# 交换变量值
a, b = b, a
print(a, b, c)
1 2 3
2 1 3


关系运算符

  关系运算符用于比较value)的关系,运算结果均为bool类型。关系运算符有<, >, <=, >=, ==, !=(不等于)。数值型和布尔型数据的值可以相互比较,组合类型的值的比较有更复杂的规则。

print(1 < 2, 1.0 > 2, True <= 2, 1 >= True+1, 1 == 2, 1 != 2)
True False True False False True

  条件语句的判断条件经常使用到该运算符,需要注意区分===的功能差别,不要混淆。

身份运算符

  身份运算符可以比较变量的标识identification)的关系,运算结果均为bool类型。身份运算符有is, is not(不等于)。用于判断两个标识符(变量名、常量名)是否指向同一内存地址。
  (以下为拓展内容,不懂可跳)

  数据类型均为数值布尔时,value相同则id相同;
  数据类型均为序列时,即使value相同,id也不同,因为创建序列时,是先开辟专有空间,再存入元素,即序列的值
  数值序列id一定不同,即使序列中的元素就是参与比较的数值,因为序列分配的空间是专有的,而相同的数值存储于相同地址

# 创建列表(又称数组,属于可变序列,后续会介绍的一种数据类型)
list1, list2 = [1], [1]
a = 1 
print(list1 == list2, list1 is list2, [2] is [2])
print(a is 1, 1 is list1, True is 1)
True False False
True False False

  严格意义上,上述的 序列 拓展到 组合 时,仍然适用,并且布尔数值之间也有 valueid不同 的规律。
  可以回顾Python基础学习笔记(三)——变量_数据类型关于数据类型的分类的解释,这里不再展开。

成员运算符

  成员运算符可以判断元素是否在指定序列中,运算结果均为bool类型。成员运算符有in, not in参与比较的元素必须是可以存入参与比较的序列的。

print(2 in [0, 2], '0' not in '02')
True False


逻辑运算符

  逻辑运算符用于bool 类型数据间的逻辑运算,运算结果均为bool类型。逻辑运算符有and(与), or(或), not(非)

# 与:当且仅当两值均为True时,返回值为True
print(1 < 2 and 1.0 > 2)
# 或:当且仅当两值均为False时,返回值为False
print([2] is [2] or True is 1)
# 非:对bool取反
print(not 2 in [0, 2])
False
False
False


位运算符

  位运算符是将int, bool转为二进制进行计算,运算结果均为int类型。位运算符有&(按位与), |(按位或), ^(按位异或), ~(按位取反), <<(左移位), >>(右移位)

1. 按位运算

  有两个操作数,属于双运算符

# 十进制转为二进制后,两数位数对齐,相应位做逻辑运算,得到结果位的值
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011
# 异或:两位不同,结果为1;两位相同,结果为0
print(35 ^ 28)
# 输出结果为十进制整数
63

2. 移位运算

  只有一个操作数,属于单运算符,移位方向跟名字一致。

# 二进位全部移动若干位,溢位舍去,缺位补零
a = 0011 1100
b = 0000 1101
-----------------
a>>3 = 0000 0111
b<<5 = 1010 0000
# 右移位:a>>b = a//2**b
print(35 >> 2, 35//2**2)
# 左移位:a<<b = a*2**b
print(12 << 3, 12*2**3)
8 8
96 96


优先级

运算符描述
**指数(最高)
~ + -单运算符(按位翻转,一元加号和减号)
* / // %乘除
+ -加减
>> <<移位
&
^ |(异)或
<= < > >=比较
== !=等于
= %= /= //= -= += *= **=赋值
is, is not身份
in, not in成员
not, and, or逻辑

  一元加号和减号的应用比较简单,这里提一下,常见于Pyhon中的正数和负数的格式,如+1, -1,一般来说一元加号很少用到。

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

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

相关文章

Kubernetes常用命令

目录 一.资源管理办法 1.陈述式资源管理方法 &#xff08;1&#xff09;kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口 &#xff08;2&#xff09;kubectl 是官方的CLI命令行工具&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在…

VC++学习(3)——认识MFC框架,新建项目,添加按钮

目录 引出第三讲 MFC框架新建项目Windows搜索【包含内容的搜索】如何加按钮添加成员变量添加成功 添加按钮2杂项 总结 引出 VC学习&#xff08;3&#xff09;——认识MFC框架&#xff0c;新建项目&#xff0c;添加按钮 MFC(Microsoft Foundation Classes)&#xff0c;是微软公…

零基础小白撸空投攻略:空投流程是什么样的? 如何操作?

在Web3的世界中&#xff0c;空投&#xff08;Airdrop&#xff09;是一种常见的营销和推广策略&#xff0c;通过向特定用户群体免费分发代币&#xff0c;项目方希望能够吸引更多的用户和关注。对于许多刚刚接触加密货币和区块链的新手来说&#xff0c;都会疑惑空投的流程究竟是什…

AI - GPT-4o是什么?

一、定义&#xff1a; GPT-4o是OpenAI推出的最新旗舰级人工智能模型&#xff0c;它是GPT系列的一个重要升级&#xff0c;其中的"o"代表"Omni"&#xff0c;中文意思是“全能”&#xff0c;凸显了其多功能特性。该模型被设计为能够实时对音频、视觉和文本进…

Java-JavaQAList

一、Java基础 解释下什么是面向对象&#xff1f;面向对象和面向过程的区别&#xff1f;面向对象的三大特性&#xff1f;分别解释下&#xff1f;JDK、JRE、JVM 三者之间的关系&#xff1f;重载和重写的区别&#xff1f;Java 中是否可以重写一个 private 或者 static 方法&#…

LeetCode-Pow(x, n)【递归 数学】

[TOC](LeetCode-Pow(x, n)【递归 数学】) 题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000 示例 2&#xf…

HTML | 在IDEA中配置Tomcat时遇到的一些问题的解决办法

目录 IDEA中没有web文件夹目录 Tomcat在哪里配置服务器 IDEA中没有web文件夹目录 首先说在IDEA中没有web这个文件夹的解决办法 在菜单栏中帮助中点击查找操作搜索添加框架支持&#xff08;因为我的IDEA会出现无法点击这个操作&#xff0c;所以我对该操作添加了快捷键&#xf…

聊聊 JSON Web Token (JWT) 和 jwcrypto 的使用

哈喽大家好&#xff0c;我是咸鱼。 最近写的一个 Python 项目用到了 jwcrypto 这个库&#xff0c;这个库是专门用来处理 JWT 的&#xff0c;JWT 全称是 JSON Web Token &#xff0c;JSON 格式的 Token。 今天就来简单入门一下 JWT。 官方介绍&#xff1a;https://jwt.io/intr…

邮件系统中的CC和BCC含义

一、背景 我们在发邮件时&#xff0c;有时会看到或用到CC和BCC相关的功能&#xff0c;下面简要介绍一下。 二、CC CC&#xff1a;Carbon Copy&#xff0c;也就是抄送&#xff0c;是一种电子邮件发送方式。 三、BCC BCC&#xff1a;Blind Carbon Copy&#xff0c;也就是密件…

谓词逻辑(一)

一、句子的谓词符号化 谓词逻辑&#xff0c;也叫一阶逻辑&#xff0c;它对每个最简单的命题尽一步进行分解。 1个体词&#xff1a;可以独立存在的客体。 2谓词&#xff1a;描述一个个体词的属性或多个个体词之间的关系&#xff08;可用一元函数和多元函数来理解&#xff09;…

【内存泄漏Bug】animation未释放

问题描述 一个页面做了动画特效&#xff0c;这个页面有可能跳转到其他页面&#xff0c;并长时间不返回&#xff0c;该页面此时已经不活跃了&#xff0c;该页面的对象为无用对象&#xff0c;存在内存泄漏风险 问题分析 这个activity的特性是 1. 有可能跳转到其他页面 2. 有可…

【qt】QListWidget 组件

QListWidget 组件 一.QListWidget的用途二.界面设计三.QListWidget的添加1.界面添加2.代码添加 四.列表项的设置1.文本2.图标3.复选框4.列表大小 五.字体和图标的设置1.字体&#xff1a;2.图标&#xff1a; 六.设置显示模式1.图标2.列表 七.其他功能实现1.删除2.全选3.反选4.ad…

清空了电脑回收站,之前的文件还能否恢复?

电脑已成为我们日常生活中不可或缺的一部分。我们在电脑上处理文档、保存图片、下载视频等&#xff0c;而电脑中的回收站则成为我们处理不再需要文件的一个便捷工具&#xff0c;当我们想要删除某些文档的话&#xff0c;它并不是立即从硬盘上消失&#xff0c;而是被系统移动到了…

【堡垒机小知识】堡垒机资产监控能监控哪些东西呢?

堡垒机&#xff0c;重要的网络安全工具&#xff0c;其资产监控功能在保障系统稳定运行、防范潜在风险方面发挥着至关重要的作用。但不少小伙伴对于监控内容不清楚&#xff0c;这里我们就来一起简单看看&#xff0c;仅供参考~ 堡垒机资产监控能监控哪些东西呢&#xff1f; 【…

js——数据操作——实现阶梯价格排序——基础积累

最近在写网络报价的时候&#xff0c;遇到一个需求&#xff0c;就是要根据采购数量&#xff0c;找到符合数量的阶梯区间&#xff0c;并找到最便宜的采购价格。 比如下面&#xff1a; let originViewList [{id:1,incrementalQuantity:10,priceList:[{minQuantity:1,price:20},…

Linux —— 线程同步

Linux —— 线程同步 死锁线程同步条件变量pthread_cond_waitpthread_cond_signal初始状态为什么之后会“阻塞”如何修改以持续运行 pthread_cond_broadcast 条件变量的接口抢票模拟 我们今天接着来了解线程&#xff1a; 死锁 死锁&#xff08;Deadlock&#xff09;是计算机科…

基础编程函数题

1.简单输出整数&#xff1a;本题要求实现一个函数&#xff0c;对给定的正整数N&#xff0c;打印从1到N的全部正整数。 #include <stdio.h> void PrintN ( int N ); int main () { int N; scanf("%d", &N); PrintN( N ); return 0; } void Prin…

会所前台装水离子雾化壁炉前和装后对比

会所前台装水离子雾化壁炉前和装后会有明显的对比&#xff1a; 装水离子雾化壁炉之前&#xff1a; 普通前台氛围&#xff1a; 在壁炉安装之前&#xff0c;前台可能显得普通&#xff0c;缺乏独特的装饰元素或焦点。 空间感平淡&#xff1a;前台的氛围可能相对平淡&#xff0c…

了解监控易(42):国产化信创运维,自主可控

在信息化快速发展的今天&#xff0c;数据安全和系统自主可控性成为了企业关注的重点。监控易作为一款具有完全自主可控优势的监控运维解决方案&#xff0c;凭借其独特的技术架构和灵活的适配能力&#xff0c;成功满足了信创及国产化替代的需求&#xff0c;展现出了显著的竞争优…

【Python设计模式05】装饰模式

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许向一个现有对象添加新的功能&#xff0c;同时又不改变其结构。装饰模式通过创建一个装饰类来包裹原始类&#xff0c;从而在不修改原始类代码的情况下扩展对象的功能。 装饰模式的结构…