2.运算符

Python2 运算符 什么是运算符? 本章节主要说明Python的运算符。举个简单的例子** 4 +5 = 9 。 例子中,4 和 5 被称为操作数**,"+" 称为运算符。 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 接下来让我们一个个来学习Python的运算符。 Python算术运算符 以下假设变量:** a=10,b=20**: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 阅读详情

2.1 算术运算符

   基本四则运算符 + - * / %

规则比较简单,值得注意的是除法:

 a)int / int 结果还是int,需要使用double来计算。

int a = 1;
int b = 2;
System.out.println(a/b);
//结果为0

b) 0不能作为除数

int a =1;
int b =0;
System.out.println(a/b)
//运行结果
Exception in thread "main"java.long .ArithmeticException : / by zero
 at Test.main(Test.java:5)

c) %表示取余,不仅仅可以对int求模,也能对double来求模

System.out.println(11.5%2.0);
//运行结果
1.5

增量赋值运算符 += -= *= /= %=

int a = 10;
a+=1;  //等价于 a=a+1
System.out.println(a);

自增/自减运算符 ++ --

int a =10;
int b =++a;
System.out.println(b);
int c = a++;
System.out.println(c);

结论:

    1.如果不取自增运算的表达式的返回值,则前置自增和后增没有区别。

    2.如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值。

2.2关系运算符

  == != < > <= >=

int a = 10;
int b = 20; 
System.out.println(a == b); 
System.out.println(a != b); 
System.out.println(a < b); 
System.out.println(a > b); 
System.out.println(a <= b); 
System.out.println(a >= b);

注意:关系运算符的表达式返回值都是booean类型。

2.3逻辑运算符

 逻辑运算符主要有三个:

  && || !

  注意:逻辑运算符的操作数和返回值都是boolean

  逻辑与 &&

  规则:两个操作数都是为true,结果为true,否则为false

int a = 10;
int b = 20;
int c = 30;
System.out.println(a<b && b<c);

  逻辑或||

  规则:两个操作数都为false,结果为false,否则为true

int a = 10;
int b = 20;
int c = 30;
System.out.println(a<b || b<c)

  逻辑非!

    规则:操作数为true,结果为false;操作数为false,结果为true(这个是单目运算符,只有一个操作数)。

int a = 10;
int b = 20;
System.out.println(!a<b);

  短路求值

    &&和||遵守短路求值的规则。

System.out.println(10>20&&10/0==0); //打印false
System.out.println(10<20||10/0==0); //打印true

我们都知道,计算10/0会导致程序抛出异常。但是上面的代码却能正常运行,说过10/0并没有真正被求值。

结论:

   1.对于&&,如果左侧表达式值为false,则表达式的整体的值一定是false,无需计算右侧表达式。

   2.对于||,如果左侧表达式值为true,则表达式的整体的值一定是true,无需计算右侧表达式。

 &和|

 &和|如果操作数为boolean的时候,也表示逻辑运算。但是和&&以及||相比,它们不支持短路求值

System.out.println(10>20&10/0==0);
System.out.println(10<20|10/0==0);

2.4 位运算符

  java中对数据的操作的最小单位不是字节,而二进制位

  位运算符主要有四个:

  & | ~ ^

 位操作表示按二进制位运算。计算机中都是使用二进制来表示数据的,按位运算就是在二进制位的每一位依次进行计算。

 按位与&:如果两个二进制位都是1,则结果为1,否则结果为0

int a = 10;
int b = 20;
System.out.println(a&b);

进行按位运算,需要先把10和20转化成二进制,分别为1010和10100

按位或 | :如果两个二进制都是0 ,则结果为0,否则结果为1

int a = 10;
int b = 20;
System.out.println(a|b);

 运算方式和按位于类似

 注意:当&和7|的操作数位整数(int,short,long,byte)的时候,表示按位运算,当操作数位boolean的时候,表示逻辑运算。

 按位取反~:如果该位为,则转为1,如果为0,则转为0

int a = 0xf;
System.out.printf("%x\n",~a);

注意:

      1.0x前缀的数字为 十六进制可以看成是二进制的简化表示方式。一个十六进制数字对应4个二进制位。

      2.0xf表示10进制的15,也就是二进制的1111。

      3.printf能够格式化输出内容,%表示按照十六进制输出。

      4.\n表示换行符。

 按位异或^:如果两个数字的二进制位相同,则结果为0,则结果为1。

int a = 0x1; 
int b = 0x2; 
System.out.printf("%x\n",a^b);

2.5 移位运算

 移位运算符有三个:

   << >> >>>

  都是按照二进制位来运算

  左移<<:最左侧位不要了,最右侧补0

int a = 0x10; 
System.out.printf("%x\n", a << 1); 
// 运行结果(注意, 是按十六进制打印的) 
20

右移>>:最右侧位不要了,最左侧补符号位

int a = 0x10; 
System.out.printf("%x\n", a >> 1); 
// 运行结果(注意, 是按十六进制打印的) 
8 
 
int b = 0xffff0000; 
System.out.printf("%x\n", b >> 1); 
// 运行结果(注意, 是按十六进制打印的)
ffff8000

 无符号位右移>>>:最右侧位不要了,最左侧补0.

int a = 0xffffffff; 
System.out.printf("%x\n", a >>> 1); 
// 运行结果(注意, 是按十六进制打印的) 
7fffffff

注意:

      1.左移1位,相当于原数字*2,左移N位,相当于原数字*2的N次方。

      2.右移1位,相当于原数字/2,右移N位,相当于原数字/2的N次方。

      3.由于计算机计算移位效率高于计算乘除,当某个代码正好乘除2的N次方的时候可以用移位运算代替。

      4.移动负数或者移位位数过大没有意义。

2.6 条件运算符

  条件运算符只有一个:

      表达式1?表达式2:表达式3

      当表达式的值为true时,整个表达式的值;当表达式1的值为false时,整个表达式的值为表达式3的值。

      也是java中唯一的一个三目运算符,是条件判断语句的简化写法。

//求两个整数的最大值
int a = 10;
int b = 20;
int max = a>b?a:b;

2.7运算符的优先级

   先看一段代码

     System.out.println(1+2*3);

结果为7,说明先计算2*3,再计算1+

另外一个例子

     System.out.println(10<20&&20<<30);

此时明显是先计算的10<20和20<30,再计算&&,否则20&&20这样的操作是语法上有误的(&&的操作数只能是boolean).

运算符之间是有优先级的,具体规则我们不必记忆,在可能时加上括号即可。

2.8小结

    1.%操作再java中也能针对double来计算。

    2.需要区分清楚 前置自增 和 后置自增 之间的区别。

    3.由于java是强类型语言,因此对于类型检查比较严格,因此像&&之类的运算操作数必须是boolean。

    4.要区分清楚&和|什么时候表示按位运算,因此像&&之类的运算操作数必须是boolean。

整体来看,java的运算符的基本规则和C语言基本一致。

3.注释

     注释是为了让代码更容易被读懂而附加的描述信息,不参与编译运行,但是却非常重要。

   3.1 基本规则

      java中的注释主要分为一下三种

           单行注释://注释内容(用的最多)

           多行注释:/*注释内容*/

           文档注释:/**文档注释*/

   3.2注释规范

   

1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.
2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.
3. 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.
4. 积极向上: 注释中不要包含负能量(例如 领导 SB 等).

       4.关键字  

 

  

 

 

 

Scratch2.0编程--第十一节 运算符 本节我们主要学习运算符中的各个积木。主要有基本的数学运算符、比较运算符、逻辑算符、字符串的处理、和一些特殊的算术运算符。 1、基本的数学运算                  这些都是最简单的数学运算符,一看就明白具体执行什么操作,因此就不再详细介绍。 2、比较运算符                   我们做每一件事其实都是一个 阅读详情

相关推荐

NVIDIA NCCL 安装和测试实战教程

ibrary)是用于深度学习应用的高性能通信库,可加速多GPU通信和同步。它能够在多个GPU之间进行高效的数据传输和集体操作,显著提高了分布式GPU系统上深度学习训练和推理的性能。NVIDIA NCCL是加速多GPU系统上深度学习应用的必不可少的工具。其高效的通信原语和集体操作显著提高了分布式训练和推理的性能,使其成为现代深度学习基础架构的关键组成部分。

weixin_39818775的博客 4428

python考试题目及答案-python期末考试试题汇总

6.for i in range(2,n):if n%i==0:breakif i==n-1:print('是素数')else:print('不是素数')7.'abcabcabc'.count('abc')的值为__3__。8.对于有else子句的for循环和while循环,但循环因循环条件不成立而自然结束时__会__(会或不会)执行else中的代码。10.已知x='hello world.',那...

q6q6q的专栏 4万+

软考29-上午题-【数据结构】-排序

数据结构7种排序

qq_31532983的博客 1579

python期末考试试题

python期末考试试题汇总 学习2020-4-105589阅读·98喜欢·11评论 想个昵称憋一天 粉丝:370文章:31 关注 6.for i in range(2,n): if n%i==0:break if i==n-1: print('是素数') else: print('不是素数') 7.'abcabcabc'.count('abc')的值为__3__。 8.对于有else子句的for循环和while循环,但循环因循环条件不成立而自然结束时...

wangprince2017 2万+

超实用!用 Ollama + DeepSeek + Dify 搭建本地知识库,提升企业效率

本文介绍了如何使用 Ollama + DeepSeek + Dify 搭建本地知识库,帮助企业高效管理信息。通过简单配置,可实现智能问答、文档检索等功能,提升效率并保障数据安全。

Happiness is everywhere 4294

RK-XCKU5P RoCEv2 传感器桥工程分析报告

烧入后这块 FPGA 就是一个固定身份(CA:FE:C0:FF:EE:00 / 192.168.0.2 / 无 FEC 100G)的RoCEv2 UC 端点,每秒在 UDP 12267 广播自报家门;对端 CX5 只要关 FEC、配 192.168.0.101 +MTU 4200,就能 ping 通它、用 UDP 8192 读写它的全部寄存器、再按"ECB 旁路交换 QPN/rkey"的方式建立 UC RDMA 通道收发数据。

eloudy的专栏 244

Container killed on request. Exit code is 143

背景 只是一条INSERT语句插入一条数据,然后就报错 报错如下 Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask 分析 之前写过这个错误,这只是个表象错误,具体问题还是需要看日志分析。Z 正常日志里没有报错,在这个任务的一个POST日志文件中发现如下报错 Container contai...

Sin_Geek成长の迹 5893

认知网络分析实战:用Python复现课堂对话研究(含LSA代码)

本文通过Python实战,详细演示了如何运用认知网络分析(ENA)和滞后序列分析(LSA)两种方法,对课堂对话数据进行深度挖掘。文章提供了从数据清洗、行为编码到网络构建、序列统计及可视化的完整代码流程,帮助教育研究者和数据分析师量化分析对话中的认知结构与动态互动模式,从而获得超越文本表面的研究洞见。

weixin_28559803的博客 155

2018-04-09018-04-09 react-native-router-flux 跳转页面启动两个次

用'react-native-router-flux' 路由库时 用Actions 跳转时 启动页面两次,或者启动2个页面 这个现象 注意了: 路由代码: const RouterPager = () =&gt; { return &lt;Router backAndroidHandler={onBackPress} ...

惯性力 603

MPU6050数据融合避坑指南:当欧拉角遇到万向节死锁,我们该如何处理?

本文深入探讨了MPU6050在姿态解算中遇到的欧拉角万向节死锁问题,提供了四元数解决方案及工程实践策略。通过分析死锁现象的本质,介绍四元数的优势与实现方法,并给出必须使用欧拉角时的三种应对方案,帮助开发者有效规避数据跳变和解算失效问题。

weixin_30415113的博客 541

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

LeetCode 52

解题思路: 先将头部排序,头部相同的按照尾部排序。 以第一个的头尾为start,end ,然后遍历,如果前一个的尾部和后一个的头部重叠,则重新写start和end为最大范围。 /** * Definition for an interval. * public class Interval { * int start; * int end; * In...

u013146557的博客 261

华为OD机试真题 新系统 2026-04-22 Python&JS 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 316

Python2.7运算符小记

Python2.7运算符小记 文章目录Python2.7运算符小记赋值运算符位运算符逻辑运算符成员运算符身份运算符运算符优先级 赋值运算符 运算符 描述 = c = a + b 将 a + b 的运算结果赋值为 c += c += a 等效于 c = c + a -= c -= a 等效于 c = c - a *= c *= a 等效于 c = c * a /= c...

Gowi的博客 461

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python2之运算符

注:在Python2中,除法的取值结果取整数,带上小数点/表示真除。下面例子假设:a=9,b=2算术运算符描述实例+  加a+b=11-减a-b=7*乘a*b=18/除a/b=4 ( 注:a,b都是整数。)若想得到真正的结果,则除数或被除数中至少有一个需要带上小数:9.0/2=4.5、9/2.0=4.5、9.0/2.0=4.5//取整除a/b=4%取余a%b=1**幂a**b=81代码:# -*-...

carfge的博客 3140

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

as2.0步进教程4--运算符

原文地址:as2.0步进教程4--运算符作者:malaosan0725     AS常用语句     一.运算符     1. = 赋值运算符,它不是数学中的等于,而是将=号右边的值赋给左边的变量.     2. 使用于字符串的运算符:     比较:== 等于. 用于比较两个字符串是否相等,如果相等则返回"true",否则返回false. 如: a="abc"; b="a

X805433354的专栏 998

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

在python中传统除法运算符是_Python2和Python3中除法运算符/的区别示例

这篇文章主要为大家详细介绍了Python2和Python3中除法运算符/的区别示例,具有一定的参考价值,可以用来参考一下。对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!在Python2中,除法的取值结果取整数>>> 7/32# End www_512pic_com即一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截除了,只留...

weixin_39550410的博客 399

python2中 运算符除法“/“和取整除“//”

在python中可以经常看到运算符/和运算符//那么这二者有什么区别呢?/表示除法,对于整数除法而言,会取整,而对于小数除法,则得到小数,比如:10/3 = 3 7/2 = 3 9.0/3 = 3.0 9.0/2 = 4.5而//表示取整除,只返回商的整数部分,无论是对于整数还是小数除法,都只会得到整数部分,比如9/2 = 4 9.0/2 = 4.0...

keep forward, go, go, go 2万+

2-4算术运算符

2-4算术运算符 转载于:https://www.cnblogs.com/wangjunwei/p/10403979.html

weixin_30621711的博客 85

运算符(2)

条件运算符: 条件表达式?表达式1:表达式2 先计算条件表达式,若为真,对表达式1求值,求值的结果为整个条件操作符表达式的值; 若为假,对表达式2求值,求值的结果为整个条件操作符表达式的值。 Condition?Action1:Action2; Condition即判定条件执行的表达式,必须为逻辑型数据或可隐式转换为逻辑型数据的表达式。 Action1为当条件表达式为真时,执行该语句。 Actio...

weixin_42938192的博客 182

python传统除法运算符_Python2和Python3中除法运算符的区别有哪些

今天扣丁学堂给大家介绍一下关于Python视频教程之除法运算符/在Python2和Python3中的区别,下面我们一起来看一下吧。在Python2中,除法的取值结果取整数>>>7/32即一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截除了,只留下了整数部分。在Python3中,除法/的结果包含小数注意:无论除数和被除数是任何类型都会保持小数部分,即使整除也会表示...

weixin_39785422的博客 362

Test2:算术运算符练习

Test2:算术运算符练习 /* * 算术运算符练习 */ public class Test2 { public static void main(String[] args) { int i1 = 10, i2 = 20; int i = i1++; System.out.println(i); //10 //已经用完了i1了,所以自加 System.out.println("i1=" + i1); //11 i = ++i1; System.out

qq_55841250的博客 141

Android从零开始学习Rxjava2(二)—— 创建运算符

rxjava2创建操作符 rxjava2支持链式编程,大多数运算符都在Observable上运行并返回一个Observable。 这允许您在链中一个接一个地应用这些运算符。 链中的每个运算符都会修改由前一个运算符的运算产生的Observable。 rxjava2提供了大量不同种类的运算符,根据其分类来划分,大致可以分为以下列表 分类 举例 说明 Creating Observabl...

DYJALY的专栏 450

5.运算符2(关系运算符)

package Chapter; //Operator /* 关系运算符: * > 大于 * >= 大于等于 * < 小于 * <= 小于等于 * == 等于 * != 不等于 * * 注意: = 是赋值运算符 * == 是关系运算符 * * 关系运算符的运算结果一定是布尔类型:true/false * */ public class Sec2_Operator2 { publ.

weixin_45908111的博客 102

python2和python3在运算符上的区别

python2和python3在运算符上的区别

xiaodaimu00的博客 508

加、不等和输入输出的运算符重载(2维向量Vec2)

加、不等和输入输出的运算符重载(2维向量Vec2)

qq_45491519的博客 2107
上一篇: 数据类型与运算符
王翔乐
博客等级 码龄8年 6粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值