Python3运算符

目录

Python运算符种类

Python 支持很多运算符,其中包括:

1. 算数运算符 
2. 赋值运算符
3. 关系(比较)运算符 
4. 逻辑运算符 
5. 成员运算符
6. 身份运算符
7. 位运算符
1. 算数运算符
a=20
b=10
算术运算符说明举例
+加法,两个数相加a+b 结果为30
-减法,得到负数或两个数相减a-b 结果为10
*乘法,两个数相乘a*b 结果为200
/除法,两个数相除a/b 结果为2.0
%取余,两个数相除取余a%b结果为0
//取整除,两个数相整除取商a//b结果为2
**a**b(a的b次方)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#



a=20
b=10
c=6

print("a+b =",a+b)
print("a-b =",a-b)
print("a*b =",a*b)
print("a/b =",a/b)
print("a/c =",a/c)  #python3中,不能整除时可以保留小数部分,如果是python2,则丢弃小数部分,结果直接为3
print("a%b =",a%b)
print("a//b =",a//b)
print("a**b =",a**b)

运行结果如下:

a+b = 30
a-b = 10
a*b = 200
a/b = 2.0
a/c = 3.3333333333333335  
a%b = 0
a//b = 2
a**b = 10240000000000
2. 赋值运算符
赋值运算符说明举例
=简单的赋值运算符c=a+b将a+b的运算结果赋值给c
+=加法赋值运算符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
!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#



a=21
b=10

c=0
c=a+b
print("c=a+b的值为:",c)

c=5
c+=a #c=c+a
print("c+=a的值为:",c)

c=2
c*=a #c=c*a
print("c*=a的值为:",c)

c=100
c/=a #c=c/a
print("c/=a的值为:",c)

c=100
c%=a  #c=c%a
print("c%a的值为:",c)

c=2
c**=a  #c=c**a
print("c**a的值为:",c)

c=100
c//=a #c=c//a
print("c//=a的值为:",c)

运行结果如下:

c=a+b的值为: 31
c+=a的值为: 26
c*=a的值为: 42
c/=a的值为: 4.761904761904762
c%a的值为: 16
c**a的值为: 2097152
c//=a的值为: 4

注意:在不同的机器上浮点运算的结果可能会不一样。
在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //

注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki


a=7
b=2
c=a//b
print("c=a//b的值为:",c)


a=7.0
b=2
c=a//b
print("c=a//b的值为:",c)

a=7
b=2.0
c=a//b
print("c=a//b的值为:",c)

运行结果如下:

c=a//b的值为: 3
c=a//b的值为: 3.0
c=a//b的值为: 3.0
3. 关系(比较)运算符
a=20
b=10
关系(比较)运算符说明举例
==比较两个对象是否相等(a==b) 返回 False
!=比较两个对象是否不相等(a!=b) 返回 True
<>比较两个对象是否不相等(a<>b) 返回 True
>是否大于(a>b)返回 True
>=是否大于等于(a>=b) 返回 True
<是否小于(a<b)返回 False
<=是否小于等于(a<=b) 返回 False

关系(比较)运算符 返回的结果实质上是一个布尔值
注意:Pyhton3 已不支持 <> 运算符,可以使用 != 代替。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#



a=20
b=10
c=0

if(a==b):
    print("a等于b")
else:
    print("a不等于b")

if(a!=b):
    print("不等于b")
else:
    print("a等于b")


if(a<b):
    print("a小于b")
else:
    print("a不小于b")

if(a<b):
    print("a小于b")
else:
    print("a不小于b")

if(a>b):
    print("a大于b")
else:
    print("a不大于b")

# 修改变量 a 和 b 的值
a=5
b=20

if(a<=b):
    print("a小于等于b")
else:
    print("a大于b")

if(a>=b):
    print("a大于等于b")
else:
    print("a小于b")

运行结果如下:

a不等于b
不等于b
a不小于b
a不小于b
a大于b
a小于等于b
a小于b
4. 逻辑运算符

逻辑运算符 返回的结果实质上是一个布尔值

x=False
y=Ture
逻辑运算符说明举例
and布尔"与",x and y则返回 False(x and y)返回 False
or布尔"或",x and y则返回 Ture(x or y)返回 Ture
not布尔"非",not y 则返回 Falsenot(x and y)返回 Ture
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#



x=10
y=20

if(x and y):
    print("变量x和y都为true")
else:
    print("变量x和y至少有一个为false")

if(x or y):
    print("变量x和y至少有一个为true")
else:
    print("变量x和y都为false")

if not(x and y):
    print("变量x和y至少有一个为false")
else:
    print("变量x和y都为true")

运行结果如下:

变量x和y都为true
变量x和y至少有一个为true
变量x和y都为true
5. 成员运算符
成员运算符说明
in如果在指定的序列中找到完全匹配的值,则返回Ture,否则返回 False
not in如果在指定的序列中没有找到完全匹配的值,则返回Ture,否则返回 False

成员运算符返回的结果实质上是一个布尔值

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

name="李晓文"
# "李晓文" 这是一个字符串,里面包含3个字符
if "李" in name:
    print("ok")
else:
    print("Error")


if "李晓文" in name:
    print("ok")
else:
    print("Error")


if "李文" in name:
    print("ok")
else:
    print("Error")
    
print("----------------分割线----------------")

if "李" not in name:
    print("ok")
else:
    print("Error")


if "李晓文" not in name:
    print("ok")
else:
    print("Error")


if "李文" not in name:
    print("ok")
else:
    print("Error")
    
print("----------------分割线----------------")

name="李晓文"
# "李晓文" 这是一个字符串,里面包含3个字符
flag="李" not in name
print(flag)

flag="李晓文"  in name
print(flag)

运行结果如下:

ok
ok
Error
----------------分割线----------------
Error
Error
ok
----------------分割线----------------
False
True
6. 身份运算符
身份运算符说明
isis是判断两个标志符是不是引用自同一个对象
is notis not 是判断两个标志符是不是引用自不同的对象

身份运算符返回的结果实质上是一个布尔值。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


a=20
b=20

if(a is b):
    print("a和b引用自同一个对象")   #id(x)==id(b)
else:
    print("a和b不是引用自同一个对象")
print(id(a))
print(id(b))

print("----------------分割线----------------")

a=20
b=30
if(a is b):
    print("a和b引用自同一个对象")   #id(x)==id(b)
else:
    print("a和b不是引用自同一个对象")
print(id(a))
print(id(b))

运行结果如下:

a和b引用自同一个对象
8790916969904
8790916969904
----------------分割线----------------
a和b不是引用自同一个对象
8790916969904
8790916970224
7. 位运算符
位运算符说明举例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a& b)输出结果12,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a| b)输出结果61,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a^b)输出结果49,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a)输出结果-61,二进制解释: 1100 0011,在一个有符号二进制数的补码形式
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a<<2输出结果240,二进制解释: 1111 0000
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数a>> 2输出结果15,二进制解释: 0000 1111

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

a=60    #0011 1100
b=13    #0000 1101

print("a&b的值是:",a&b)    #a&b=0000 1100  ==>十进制12
print("a|b的值是:",a|b)    #a|b=0011 1101  ==>十进制61
print("a^b的值是:",a^b)    #a^b=0011 0001  ==>十进制49
print("~a的值是:",~a)      #~a=1100 0011  ==>十进制195

print("a<<2的值是:",a<<2)   #a<<2=1111 0000  ==>十进制240
print("a>>2的值是:",a>>2)   #a>>2=0000 1111  ==>十进制15
print("b>>2的值是:",b>>2)   #b>>2=0000 0011  ==>十进制3

运行结果如下:

a&b的值是: 12
a|b的值是: 61
a^b的值是: 49
~a的值是: -61
a<<2的值是: 240
a>>2的值是: 15
b>>2的值是: 3

Python运算符优先级

运算符描述说明
**幂/指数(最高优先级)
~ + -按位翻转,- -元加号和减号(最后两个的方法名为+@和-@)
*/%//乘,除,取模和取整除
+ -加法减法
>><<右移,左移运算符
&位’AND’
^|位运算符
<=<>>=关系(比较)运算符
<>==!=等于运算符
= %=/=//=-=+=*= **=赋值运算符
is is not身份运算符
in not in成员运算符
not or and逻辑运算符

先计算and,再计算or

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

x=True
y=False
z=False

if x or y and z:
    print("True")
else:
    print("False")

运行结果如下:

True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值