课堂笔记2(python运算符)

算术运算符

运算符 描述
+
-
*
/
% 返回除法的余数
** 幂次
// 返回商的整数部分

乘法运算打印输出效果:

在这里插入图片描述

幂次打印输出效果图:

在这里插入图片描述

整除和取余数计算:

计算按照正常数学运算规律,
1、先乘除后加减。
2、先算括号内的后算括号外的。
如图所示:

在这里插入图片描述
注意:在上图中,(50-5*6)/4打印输出的结果为5.0 是浮点数。在除法运算时 打“/”得到的返回都是浮点数。如下图:
在这里插入图片描述
想要得到整数而非浮点数需要整除: “//”
注意点:当整除实际计算会有小数点的时候,是向下取整,得到的答案要小于实际数。比如3<3.333335 所以取整取3 。而-3>-3.333335>-4 。这时候取整不能取-3.而要取-4
在这里插入图片描述
取余数:“%”
计算机内部算法:
1、用被除数整除除数得到一个整数
2、用整除的数乘以除数得到一个乘数
3、用被除数减去新乘数得到余数。
注释:例如20除以4中 20为被除数 4为除数 得到的5为商。

效果图:
在这里插入图片描述

同时得到商和余数方法

运用divmod方法
divmod(x,y)[返回一个元组,其中x为整除的商。y为余数]
使用方法:
在这里插入图片描述

解决精准度问题方法

小数点和整数的减法会出现精准误差。
比如 5.4-3实际中会得到2.4。但是python中得到是2.4000000000000004。这就是精准误差。
因计算机中做计算需要转为二进制,那么计算完之后再用十进制呈现,就会产生进准误差。
在这里插入图片描述
在这里插入图片描述

要解决精度问题,可以内置模块decimal。
在decimal模块中找到Decimal类进行导入使用。
具体操作见下图:
在这里插入图片描述

python运算符号

运算符 描述
== 比较值是否相等
!= 比较值是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于

比较运算符

1、比较两个值是否相等返回的是布尔值(true、false)
2、比较运算符比较的是数值(两个数值之间的比较)比如2.0(浮点数)和2(整数)的比较 是比较数值
3、字符串不是数值和数值比较相等于不等时有区别。得到答案(false)比如:“2”(字符串)和2(整数)
但是!字符串与数值进行大小比较会报错不会返回结果。int、float和str类型不能进行比较。【int:整数 float:浮点数 str:字符串】
4、字符串和字符串相比较。比较的ASCII(阿斯克马值)

比较相等:==

在这里插入图片描述

比较不想等!=

使用方法注意!和=不能分开不能插入空格。
在这里插入图片描述

比较大小:<、>

1、只比较大小,如果相同则返回false
2、先进行第一个字符串中的字符比较,如果相同再对第二个字符进行比较,但如果是第一个就有了答案则后面字符不进行比较。(逐个比较直到有答案为止)例如“a”<“bbbb” 第一个a已经判断<b所以后续不再判断
在这里插入图片描述
3、字符串与数值之间不能比较,会直接报错。int 与str类型不能直接比较

连续比较

1、连续比较要两者都为true才会为true
2、有个false则整体就为false
3、有优先级时,先比较优先级内都内容。再将整个优先级的整体答案和后项内容进行比较。最后得到整个整体答案
4、连续比较,如a>b>c可拆解为 a>b and b>c
在这里插入图片描述

赋值运算符

运算符 描述 实例
= 赋值运算符 c=a+b
+= 加法赋值运算符 c+=a等效 c=c+a
-= 减法赋值运算符 c-=a等效c=c-a
*= 乘法赋值运算符 c*=a等效c=c*a
/= 除法赋值运算符 c/=a等效c=c/a
%= 取余数赋值运算符 c%=a等效c=c%a
**= 幂次方赋值运算符 c**=a等效c=c**a
//= 取整除赋值运算符 c//=a等效c=c//a
赋值

1、将等号右边的赋值给等号左边
2、先在等号右边进行计算,再将计算结果赋值给等号左边
在这里插入图片描述

逻辑运算符

运算符 表达式 描述
and a and b 逻辑与,a与b都为true则返回true
or a or b 逻辑或,a与b只要有一个true则返回true
not not a 逻辑非,当a为true,not a则为false

在这里插入图片描述

短路(懒惰)机制

题目:
在这里插入图片描述
答案: 20。10
原因:
10 and 20 要都为true才能成立。则10已经为真了但是20还没确认,等20确认为真了才可以整体为真,所以打印输出20

10 or 20 有个为真就可以全部为真,10已经为真了20是真还是假都没关系,所以打印输出10

比如:print(False and True) 第一个已经为False所以直接False

print(True or False)第一个已经为True所以直接True

位运算符(以二进制,了解)

运算符 描述
& 按位与:两者都为1才为1,否则为0
I 按位或:只要有一个为1则为1,否则为0
^ 按位异或:两者相等则为0,否则为1

例子:a=60 b=13.
二进制:
a=0011 1100
b=0000 1101

按位与:
a&b=0000 1100
(两个字符的1、2都为0,算作0。两个字符的3、4分别为1和0则算0。字符5、6都为1所以算1)

按位或:
a|b=0011 1101

按位异或:
a^b=0011 0001

在python中打印输出的结果是根据二进制的结果转变成的数字。
两者的异或等于第三个
在这里插入图片描述

bin函数,转为二进制

bin( ) 打印输出位二进制数

成员运算符

python独有的,用来判断对象是否是某个集合的元素之一,返回的结果是布尔值 True 或者False

运算符 描述
in 判断某个值是否在指定序列中,在则返回True
not in 判断某个值是否在指定序列中,不在则返回True

在这里插入图片描述

身份运算符

运算符 描述
is 判断两个对象的内存地址是否一致,一致则返回True
is not 判断两个对象的内存地址是否不一致,不一致则返回True
注意:is与==的区别

1、is用于判断两个变量的引用是否为同一个内存(可用id()查看)
2、== 用于判断两个变量的值是否相等
在这里插入图片描述

三目运算符

在这里插入图片描述
True运算前面的True内容
False运算后吗的False内容

题目:
在这里插入图片描述
方法一:if判断语句
在这里插入图片描述

方法二:三目语句(使用方法)
在这里插入图片描述
a+b 为条件成立时的内容
即: True_statements == a+b

a+b>3为判断条件
即:if expression == if a+b>3

加上 else后
b-a为条件不成立的内容
即:False_statements == b-a

运算符优先级

下表列出来从最高到最低优先级的所有运算符。优先级高的运算符优先处理,同级别的按从左往右的顺序计算(赋值运算符除外,它按从右往左)

运算符 描述
** 指数(幂次方)最高优先级
* , / , % , // 乘 除 取余数 整除
+ - 加 减
<= , < , > , >= 大小比较运算符
== != 相等与否比较运算符
= , %= , /= , //= , -= , += , *= , **= 赋值运算符
is , is not 身份运算符(内存地址)
in , not in 成员运算符(判断是否在元素之一)
not , or , and 逻辑运算符

猜你喜欢

转载自blog.csdn.net/yuuisei/article/details/111574965
今日推荐