运算符

python3运算符

运算符类型:

算 ,字(字符串),赋, 比, 逻, 位, 它(其他运算符号)

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

1.算术运算符(算)

除(结果为float)取模(返回余数)整除(结果为int)
+-*/%**//

2.字符串运算(其实是拼接)

####2.1 字符串与数字不能直接参与运算

print('1'+ 2)   #错

####2.2 字符串的拼接

  • 字符串+字符串
print('1'+'1')
>>>12          #此时12的type为str
  • 字符串*数字n
print('1' * 6)
>>>111111      #type为str
  • a = 'love'
    i = 'i' + a + ' you'
    print(i)
    >>>ilove you            #小tip:因为'i'不是'i ',所以i和love之间没有空格
    
  • a = 'love'
    i = 'i {a} you'
    print(i)
    >>>i {a} you
    
    a = 'love'
    i = f'i {a} you'        #''前面的f会去找字符串中被{}括起来的变量;python3新增方法
    print(i)
    >>>i love you
    
    b = 'love'
    i = 'i {a} you'.format(a = b) 
    print(i)                            #用法为:
    >>>i love you                       
    '''
    format()函数是一种格式化字符串的函数
    用法为:'{}'.format('')
           '{a}'.format(a='123')
           
           a = '123'
           '{}'.format(a)
    【字符串千万不要忘记加引号!】
    '''
    

3.赋值运算符(赋)

=+=-=*=/=%=**=//=
c = a+bc += ac -= ac *= ac /= ac %= ac **= ac //= a
将等号右边赋值给左边c = c+ac = c-ac = c*ac = c/a(结果为float)c = c%a(取余数)c = c**ac = c//a(取整数)

##4.比较运算符 (比)

==!=><>=<=
比较是否相等比较是否不等大于小于大于等于小于等于

##5.逻辑运算符 (逻)

a = 10, b = 20

andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False
print(20 and 30) >>> 30   #都为真,返回y
print(40 and 30) >>> 30   #都为真,返回y
print(40 and 0) >>> 0     #x为真y为假,返回y
print(0 and 30) >>> 0     #x为假,返回x
#and,一假全假
#都为真则返回后一个值,谁假返回谁(俩假返前值)
#x为假,则y被短路
print(10 or 20) >>> 10    #x为真,返回x
print(20 or 10) >>> 20    #x为真,返回x
print(0 or 20)  >>> 20    #x假y真,返回y
print(30 or 0)  >>> 30    #x真,返回x
#or,一真全真
#都为真则返回前一个值,有假就返回另一个(俩假除外)
#x为真,则y被短路
print(True) >>> True
print(not True) >>> False
print(False) >>> False
print(not False) >>> True
#取相反的bool值
逻辑运算符“与 && ”,“或 || ”,“非 ! ” 都有着重要的短路效应:
if(A && B)  # 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 false

if(A || B)  # 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B 为 true

【我还纳闷儿为啥用&&一直显示语法错误...&& ||和!是java它们用的!!python里的与或非就是 and ornot!】

##6.位运算与二进制 (位)

###6.1 二进制

十进制转为二进制:除2取余,逆序排列 。 可用 bin( )函数

​ 用2整除十进制整数,可以得到一个余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

二进制转为十进制:按权展开求和。 可用int( )函数,int()把任意数转换为十进制

​ 先将二迸制的数写成加权系数展开式,而后根据十进制的加法规则进行求和。

#把十进制的数9990977转为二进制
print(bin(9990977))
>>>0b100110000111001101000001

6.2 位运算

按位运算符是把数字看作二进制来进行计算的。

#例:a = 60, b = 13
a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011
运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为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

7.其它运算符及优先级(它)

7.1 成员运算符:in, not in

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

7.2 身份运算符:is, is not

isx is y,类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notx is not y,类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

id( )函数用于获取对象内存地址。

注意!is与 == 的区别:

is判断两个变量引用对象的内存地址是否相同;

==判断两个变量的值是否相同。

7.3运算符优先级:

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

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 ‘AND’
^ |位运算符
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or(这三个中not优先级最高,or最低)逻辑运算符
#小练习
a = 10 and (30 and 0) or 20 and 15 or 35
print(a)
>>> 15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值