目录

一、算数运算符

 二、比较运算符

 三、赋值运算符 

 四、逻辑运算符 

 五、位运算符

 六、成员运算符

七、身份运算符 

八、三目运算符

九、运算符优先级


​​​​​​​

一、算数运算符

算数运算符列表:

运算符的运用:

(加减运算符)只要参与运算的有浮点数,返回类型为float
print(1 + 0.5)    #1.5 返回类型为float
print(3 - 2.0)    #1.0,只要参与运算的有浮点数,返回类型为float

(乘法、幂(次方)运算)

print(3 * 3)              #*:乘号
print(3 ** 4)             #**:次方

print(50-5*6)           #20
print((50-5*6)/4)       #5.0 有括号,括号优先
print(10-2*3)       # 先算乘法,在计算减法,计算顺序一样

# *跟字符串做搭配
print('------------------------------------------')
print('-'*50)   # 打印50个 -

(除法运算)除法运算返回浮点数

print(10 / 2)      # 除法运算,5.0除法运算返回的都是浮点型
print(9 / 3)       #/: 除以,返回时浮点数3.0
print(10 / 3)      # 计算机(二进制010101) 二进制的有穷性(了解)输出3.3333333333333335

 (整除运算)整除,向下取整数,所取整数比实际结果要小的一个整数,注意:-10//3,出现负数时的情况

print(9 // 4)     # 整除,向下取整,比实际结果要小的整数,输出结果:2
print(9 // 2)     # 4
print(10 // -3)   # 输出-4,和上代码一样,向下取整,-4比-3小,故输出-4
print(10 // 3)    #//:整除 向下取整 3.3333333333333335 取3
print(-10 / 3)    #-3.3333333333333335
print(-10 // 3)   #-3.3333333333333335-->向下取整  -4

(求余数运算)计算出模,返回除法余数

print(10 % 3)    # %:模
print(10 % 3)      #%:模,取整10//3=3余1    3*3=9   10-9=1
print(-10 % 3)     # -10//3=-4     -4*3=-12    -10-(-12)=2

(商和余数)

x = 10
y = 3
print(divmod(x,y))       #divmod(x,y)-->(x//y,x%y)-->(商,余数)

(数值精确问题的解决)在计算机中会出现例如:5.4-3=2.40000000000004等情况,这是计算机转换为二进制,结果以十进制呈现,计算时出现的精确误差,为了解决误差选择用内置模块decimal 代码如下:

print(5.4-3)     #2.4000000000000004并不是python的bug,而是因为在计算机中做计算需要转为二进制
                 # 当计算完之后,又将结果转为十进制呈现,所以产生的精准误差。
# 解决精度问题,内置模块decimal
# 导入decimal模块
# import decimal                # 导入decimal模块
from decimal import Decimal     #从decimal模块中导入Decimal类
print(Decimal('5.4')-Decimal('3'))  #2.4
print(Decimal(5.4)-Decimal(3))      #2.400000000000000355271367880精确值更准

num = Decimal('5.4')-Decimal('3')
print(float(num)==2.4)
print(type(num))
"""输出true"""

 二、比较运算符

 比较运算符列表:

  比较运算符返回bool类型(True  False)True–>1  False–>0

(比较值是否相等 ==)

True可以看作数值1,False看作0,用==比较两个值是否相等,返回bool,在比较运算符中比较的是数值,字符串相加是做拼接

# 比较运算符 返回的都是bool类型(True False)
print(True==1)      # ==比较两个值是否相等,返回bool值
print(False==0)     # True
print(True + 1)     # True可以看做数值1,参与运算。输出:2
print(False + 1)    # False看做数值0,也参与运算。输出:1

print(2.0==2)       # True,比较运算符-->比较的是数值
print('2'==2)       # False,字符串不是数值,因此是False,字符串相加其实做拼接

 (不等号 !=) 在Python2中用(<>)表示不等于,而python3中<>号已经被废除

a = 1
b = 2
print(a != b)       # True  不等号!=
# print(a <> b)       # 在Python2当中表示的也是不等于,Python3当中<>号被废除了
# print(a != b)          #注意:!=不能分开写

(数值比较)简单的数字进行比较

print(2.5>2)        # True,数值比较

字符串与字符串进行比较,用ASCII进行比较,例如:

# 字符串与字符串作比较,ASCII码比较
print("abc"<"xyz")   # True 可以比较,ASCII值比较  97 98 99 < 120 121 122
# 逐个比较,比较出结果就结束
print("ab"<"ac")        #True,a>a做不出比较,接着比较b<c,b确实小于c,因此为True
print("ab">"ac")        #False
print('a' >= 'a')       # True,虽然'a'不大于'a',但是他们相等,因此返回True

注意:只要当第一个元素比较成功以后就结束。即只比较第一个,若第一个做不出比较,就接着比较第二个,以此类推,只要比较结束就出结果,不用考虑后面的元素。ASCII码中A–>65、a–>97

ASCII码对照表:

 注意:int类型不能直接与str类型进行比较

print(3<'a')         # int 与 str 类型不能直接作比较

连续比较:比较的两者都要为True才为True,否则False,比较时仔细看清优先级,例如有小括号等情况(逻辑运算符)

# 连续比较:a>b>c --> a>b and b>c  两者都为True才为True
print(3>2>1)        # True
print(3>2>2)        # 3>2(True) and 2>2(False)
print((3>2)>1)      # 加了小括号优先级。True > 1 -->False
print(True==1)      #1不大于1

 三、赋值运算符 

赋值运算符列表:

 赋值运算:将等号右边赋值给等号左边,在Python中不支持Java、c++中的i++或者i–语法

a = 1       # 将等号右边的 赋值 给等号左边的
a  = a + 1     # 先等号右边的进行计算,然后,将结果赋值给等号左边的
print(a)

a += 1            # a = a+1
print(a)

# print(a++)        #python不支持a++,a--语法

a /= 1        # a=a/1
print(a)

 四、逻辑运算符 

逻辑运算符列表:

 and(与)逻辑:两个都为True才为True,否则为False;or(或逻辑):有一个为True则为True

print(3 > 2 and 2 > 1)      # 返回的是bool类型 True and True -->True
print(3 > 2 or 2 > 1)       # 返回的是bool类型 Ture and Tue -->True
print(3 > 2 or 2 < 1)       # 返回的是bool类型 Ture and False -->True
print(not (3>2))            # not True相反结果就是False

a = True
b = True
c = False
d = False
print(a and b)      # True
print(a and c)      # False

# 连续比较:a>b>c --> a>b and b>c  两者都为True才为True
print(3>2>1)        # True
print(3>2>2)        # 3>2(True) and 2>2(False)
print((3>2)>1)      # 加了小括号优先级。True > 1 -->False
print(True==1)      #1不大于1

 五、位运算符

位运算符列表: 

&–>与 、|–>或 、\wedge–>异或 

 例如:a=60,b=13。取二进制a=00111100

                                               b=00001101

a&b=00001100  两个都为1才为1,否则为0

a|b=00111101      有一个为1则为1

\wedgeb=11001100       两个相同则为1

a=13
b=60
c=a^b       #49
print(c)
print(c^a)      #60
print(b^c)      #13

print(a&b)      # 12
print(bin(a&b))    # bin函数,转换为二进制

 六、成员运算符

 in与not in是Python独有的运算符(全部都是小写的字母),用于判断对象是否是某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类型的True或者False。

 相关案例:

# 成员运算符in in not
name = "popopolar"

class_li=["蓝机","永恒","小宇","popopolar"]

# 判断popopolar在class_中则返回True
print(name in class_li)
# if name in class_li:
#     print("在")
# else:
#     print("不在")

# 判断popopolar不在class_li中则返回True
print(name not in class_li)

print('张三' in ['小明','张三','小红'])     # True,张三在这个集合中,因此返回True
print('张三' not in ['小明','li','小红'])   # True,张三不在这个集合中,因此返回True

七、身份运算符 

 身份运算符(is、is not)也是Python的特色语法(全部都是小写字母)

 注意:is与 == 的区别

1、is用于判断两个变量的引用是否为同一个内存地址(可使用id()查看)

2、== 用于判断两个变量的值是否相等

print(id(a))查看a的内存地址,is判断内存地址是否相同,成立则为True;is not判断内存地址不相同,成立则为True

# 身份运算符is is not
a=[1,2,3]
b=[1,2,3]
print(a is b)       # False     is比较两者的内存地址(id())
print(a is not b)    # True  a和b的内存地址不一样,因此返回True
print(id(a))        #2348506224000
print(id(b))        #2348508782720

print(a==b)         # True:==是比较值

# 注意:is用于判断两个变量是否为同一个内存地址(可以用id()查看)
# ==用于判断两个变量的值是否相等
# 如果a=b=[1,2,3],则他们的内存地址相等

八、三目运算符

 Python中三目运算符的表示方法:

True_statements if expression else False_statements

三目运算符和if..else相似,而Python中的if…else和Java有区别,在Python中if和else后接了":"

具体运算:

# 三目运算符True_statements if expression else False statements
a = 1
b = 2
if a+b>3:
    print(a+b)
else:
    print(b-a)

print(a+b if a+b>3 else b-a)        #运用三目运算符处理

九、运算符优先级

 运算符存在着优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)

运算符优先级列表:

 相关案例:

# 1.运算符有多个,考虑运算符优先级
# 2.==优先级 高于 or优先级 -->类似于(temp == 'Yes')or'yes'
# 3.tmp == 'Yes'-->False
# 4.bool('yes') --> True
# 5.or 只要有一个为True就为True

temp = input('请输入:')
if temp == 'Yes' or 'yes': # ==运算符高于or,因此这里输出True,所以该代码只能输出永远是对的if,而不能输出else
    print('if执行了!')
else:
    print('else执行了!')

物联沃分享整理
物联沃-IOTWORD物联网 » Python运算符

发表评论