Python运算符
Posted 沉默的松花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python运算符相关的知识,希望对你有一定的参考价值。
目录
一、算数运算符
算数运算符列表:
运算符的运用:
(加减运算符)只要参与运算的有浮点数,返回类型为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
五、位运算符
位运算符列表:
&-->与 、|-->或 、-->异或
例如:a=60,b=13。取二进制a=00111100
b=00001101
a&b=00001100 两个都为1才为1,否则为0
a|b=00111101 有一个为1则为1
ab=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执行了!')
python之运算符
Python语言支持以下类型的运算符:
1.算术运算符
2.比较(关系)运算符
3.赋值运算符
4.逻辑运算符
5.位运算符
6.成员运算符
7.身份运算符
8.运算符优先级
简单介绍一下
python的算术运算符
python的比较运算符
python的赋值运算符
python的位运算符
Python逻辑运算符
Python成员运算符
Python身份运算符
Python运算符优先级
以上是关于Python运算符的主要内容,如果未能解决你的问题,请参考以下文章
从 Python 到 Go 再到 Rust,谁是后端开发之王?