Python的运算符和进制

复习

位运算中,只有0,1 &(与:同时为1才为1)

&01
000
101

位运算中,|(或:有一个为1就为1)

|01
001
111

位运算中,^(位异或:相同为0,不同为1)

^01
001
110

位运算中,~(非:非假即真,非真即假,正数非就为负数加一,负数非就为正数减一)

~01
001
110
0#与或异非的运算
>>> a=7
>>> b=63
>>> a&b
7
>>> a|b
63
>>> a^b
56
>>> ~a
-8
#优先级的问题:
>>> a=7
>>> b=37
>>> (a>5)&(b>60)
False
>>> a>6&b>60
True
运算符逻辑表达式描述
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

针对逻辑运算的进一步研究:

​ 1:在没有()的情况下not优先级高于and,and优先级高于or,即

​ 优先级关系为()>not>and>or,同一优先级从左往右计算。

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

Python身份运算符

身份运算符用于比较两个对象的存储单元

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

## Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 ‘AND’
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符
3>4 or 4<3 and 1==1          #结果:false
1 < 2 and 3 < 4 or 1>2       #结果:true
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 #结果:true
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #结果:true
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 > 8 #结果:true
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #结果:false
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#结果:false

数据类型的强制转换

强转类型描述
int(x)将x转换成一个整数
float(x)将x转换成浮点数
int(x [,base ])将x转换为一个整数
long(x [,base ])将x转换为一
float(x )将x转换到一个浮点数
complex(real [,imag ])创建一个复数
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个字符
unichr(x )将一个整数转换为Unicode字符
ord(x )将一个字符转换为它的整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串
#强制转换的例子:
>>> a=input(">>>")
>>>123
>>> type(a)
<class 'str'>
>>> int(a)
123
>>> type(int(a))
<class 'int'>
>>> a=(1,2,3)
>>> type(a)
<class 'tuple'>
>>> list(a)
[1, 2, 3]
>>> type(list(a))
<class 'list'>
>>> a=123
>>> b=float(a)
>>> print(type(a),type(b))
<class 'int'> <class 'float'>
>>> chr(65)
'A'
>>>

转换为Unicode值:65-A,97-a

十进制|二进制|八进制|十六进制

十进制二进制八进制十六进制
10000 00010000 00010000 0001
20000 00100000 00020000 0002
30000 00110000 00030000 0003
40000 01000000 00040000 0004
50000 01010000 00050000 0005
60000 01100000 00060000 0006
70000 01110000 00070000 0007
80000 10000000 00100000 0008
90000 10010000 00110000 0009
100000 10100000 00120000 000a
110000 10110000 00130000 000b
120000 11000000 00140000 000c
130000 11010000 00150000 000d
140000 11100000 00160000 000e
150000 11110000 00170000 000f
160001 00000000 00180000 0010
#小技巧:只能将二进制转换为八进制或者转换为十六进制,转换为八进制的时候分为三位数进行运算,从右往左,转换为十六进制的时候分为四位数进行运算,也是从右往左,转换为十进制就是1*2的任何次方减一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值