Python基础-运算符

Python语言支持以下类型的运算符:

  1. 算术运算符
  2. 比较(关系)运算符
  3. 赋值运算符
  4. 逻辑运算符
  5. 位运算符
  6. 成员运算符
  7. 身份运算符

这里会讲到这些运算符的用法

算术运算符与算术运算表达式
算术运算符
运算符功能示例(a = 10,b = 11)
+加:两个对象相加a + b = 21
-减:两个对象相减,或得到负数a - b = -1
*乘:两个操作数相乘,或是返回一个被重复若干次的字符串a * b = 110
/除:两个操作数相除(总是浮点数)a / b = 0.9090909090909091
%取模:返回除法的余数a % b = 10
**幂:返回 x 的 y 次幂a ** b = 100000000000
//取整:返回商的整数部分a // b = 0
算术运算表达式
3+2  3-1  8**9  5%3
功能:进行相关符号的数学运算,变量只参与运算,不会改变变量的值
值:相关的数学运算的结果
比较运算符
运算符功能示例
==等于:如果两个操作数相等,则为True,否则为Falsex == y
!=不等于:如果两个操作数不相等,则为True,否则为Falsex != y
>大于:如果左操作数大于右操作数,则为True,否则为Falsex > y
<小于:如果左操作数小于右操作数,则为True,否则为Falsex < y
>=大于等于:如果左操作数大于或等于右操作数,则为True,否则为Falsex >= y
<=小于等于:如果左操作数小于或等于右操作数,则为True,否则为Falsex <= y

当变量为字符串的时候,比较的是字符串的ASCII码值,如下:

a = "hello"
b = "abcde"
print(a == b) #False
print(a != b) #True
print(a >= b) #True
print(a <= b) #False
print(a > b)  #True
print(a < b)  #False

拓展:可以使用ord()和chr()两个内置函数用于字符与ASCII码之间的转换

print(ord('a')) #97
print(chr(97))  #a
赋值运算符与赋值运算表达式
赋值运算符
运算符功能示例(三位数为a,b,c)等价于
=简单的赋值运算符c = a + bc = a + b
+=加法赋值运算符c += ac = c + a
-=减法赋值运算符c -= ac = c - a
*=乘法赋值运算符c *= ac = c * a
/=除法赋值运算符c /= ac = c / a
%=取模赋值运算符c %= ac = c % a
**=幂赋值运算符c **= ac = c ** a
//=取整除赋值运算符c //= ac = c // a
赋值运算表达式

格式:变量 = 表达式

注意:使用赋值运算表达式的时候,写在等号左边的变量值会发生变化,写在等号右边的变量只参与运算,值不发生变化

以下的代码可以很好的表现出赋值运算表达式中值得变化:

a = 10
b = 20
'''
多个变量赋值还可以这样写
a,b = 10,20
a,b = (10,20)
a,b = [10,20]
'''
a += b
print("a=",a)  # 30
print("b=",b)  #20

a -= b
print("a=",a) #10
print("b=",b) #20

a *= b
print("a=",a) #200
print("b=",b) #20
逻辑运算
运算符功能概括示例
and逻辑与:如果x为False,返回False;否则返回y的计算值全真则真,一假则假x and y
or逻辑或:如果x是非0,返回x的值;否则返回y的计算值全假则假,一真则真x or y
not逻辑非:如果x为False,返回True;如果x为True,返回 False假变真,真变假not x

下面代码是逻辑运算的一些简单使用:

print(True and 0 and False) #0
print(True and True and "good") #good
print(True and 1) #1
print(True and "hello") #hello
print(True and 0) #0
print(True or 1)  #True
短路原则

表达式1 and 表达式2 and 表达式3 …
当使用and进行连接的时候,若发现有一个表达式的结果为假,剩余表达式不再进行运算直接返回假。

表达式1 or 表达式2 or 表达式3 …
使用or来进行链接的时候,若发现有一个表达式的结果为真,剩余表达式也不再继续进行运算直接返回真

逻辑运算符的优先级:()优先级最高 > not优先级 > and优先级 > or优先级,如下:

print((0 or 1) and "hello" or not False) #hello

注意:表示假:False,0,None,"",[],(),{},如下:

print(not False)#True
print(not 0)    #True
print(not None) #True
print(not "")   #True
print(not ())   #True
print(not [])   #True
print(not {})   #True

注意:bool值可以与number值参与运算,参与运算的时候True代表1,False代表0,如下:

print(True + 1)  #2
print(False + 1) #1
位运算
运算符含义示例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0x & y
|按位或运算符:只要对应的二个二进制位有一个为1时,结果位就为1,否则为0x | y
^按位异或运算符:当两对应的二进位相异时,结果为1,否则为0x ^ y
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1~x
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0x << 2
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数x >> 2

注意:我们进行位运算的时候,我们需要把数值转换为二进制数来进行计算

注意:左移:x<<y 相当于x*2^y,右移:x>>y 相当于x//2^y

成员运算
运算符含义示例
in如果在指定序列中找到值/变量则返回True,否则返回Falsex in y
not in如果在指定序列中没有找到值/变量则返回True,否则返回Falsex not in y

一些简单使用如下:

print(1 in [1,2,3,4])     #True
print("1" in "12334")     #True
print("1" not in "12334") #False
print("1" in "2334")      #False
print("1" not in "2334")  #True
身份运算
运算符含义示例
is判断两个标识符是不是引用自同一个对象,是则返回True,否则返回Falsex is y
is not判断两个标识符是不是引用自不同对象,是则返回True,否则返回Falsex is not y

注意:当我们使用=来进行对对象进行赋值的时候,两个变量则视为引用同一个对象

下面是身份运算符的一些简单使用:

list1 = [1,2,3]
list2 = [1,2,3]
list3 = list1
print(id(list1))      #39871304
print(id(list2))      #39073160
print(id(list3))      #39871304
print(list1 is list2) #False
print(list3 is list1) #True

注意:在[-5, 257)的整数取值范围内,python的内部具有缓存机制,因此在比较这个数值以内的数据可能就会有些问题。

>>>a = 10
>>>b = 10
>>>a is b
True
>>>a = 1000
>>>b = 1000
>>>a is b
False

但是需要注意的是使用交互式解释器模式运行时是没有问题的,当使用集成开发环境(IDE):PyCharm运行时就会出现问题,如下:

num1 = 1000
num2 = 1000
num3 = num1
print(num1 is num2) #True
#id(x) 查看变量x的id地址
print(id(num1))     #38899472 
print(id(num2))     #38899472
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值