python运算符

#!usr/bin/python
# coding=UTF-8

#Python3运算符

''''''
'''
Python算术运算符
    +-*/%   取模  返回除法的余数
    **  幂    返回x的y次幂
    //  取整数 返回除法的商 向下最接近的整数
'''

a = 20
b = 3

print(a + b)    #输出 23
print(a - b)    #输出 17
print(a * b)    #输出 60
print(a / b)    #输出 6.666666666666667
print(a % b)    #输出 2
print(a ** b)   #输出 8000
print(a // b)   #输出 6


'''
Python比较运算符
    ==  等于       比较两个对象是否相等
    !=  不等于     比较两个对象是否不相等
    >   大于       返回x是否大于y
    <   小于       返回x是否小于y
    >=  大于等于    返回x是否大于等于y    
    <=  小于等于    返回x是否小于等于y
'''

x = 5
y = 6

print(x == y)   #输出 False
print(x != y)   #输出 True
print(x > y)    #输出 False
print(x < y)    #输出 True
print(x >= y)   #输出 False
print(x <= y)   #输出 True

'''
Python 赋值运算符
    =       简单赋值运算符     c = a + b 
    +=      加法赋值运算符     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
    :=      海象运算符       可在表达式内部为变量赋值。
'''

a = 10
b = 3
c = 0

c = a + b
print(c)        #输出 13

c += a
print(c)        #输出 23

c -= a
print(c)        #输出 13

c *= a
print(c)        #输出 130

c /= a          #输出 13
print(c)

c = 3
c %= a
print(c)        #输出 3

c = 2
c **= a
print(c)        #输出 1024

c = 15
c //= a
print(c)        #输出 1

a = 2
b = 3
if(n := a + b) > 5:         #输出 a+b= 5 小于等于5
    print('a+b=',n,'大于5')
else :
    print('a+b=',n,'小于等于5')


'''
python位运算符:按位运算符是把数字看作二进制来进行计算的。
    &   按位与运算符      参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
    |   按位或运算符      参与运算的两个值,如果两个相应位有一个为1,则该位的结果为1,否则为0
    ^   按位异或运算符    参与运算的两个值,如果两个相应位不同时,则该位的结果为1,否则为0
    ~   按位取反运算符    对数据的每个二进制位取反,即把1变为0,0变为1<<  左移动运算符      运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0>>  右移动运算符      运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,低位丢弃,高位补0'''

a = 23      # 23 = 0001 0111
b = 10      # 10 = 0000 1010
c = 0

c = a & b   #      0000 0010
print(c)    #输出   2

c = a | b   #      0001 1111
print(c)    #输出   31

c = a ^ b   #      0001 1101
print(c)    #输出   29

c = ~a      #      1110 1000
print(c)    #输出  -24

'''
1110 1000    
二进制负数转十进制 :
11110 1000 逐位取反为 : 0001 0111
2、二进制数加1 为: 0001 1000
3、加上负号结果为 -24
'''

c = a << 2  #       0101 1100
print(c)    #输出   92

c = a >> 2  #       0000 0101
print(c)    #输出   5

'''
python逻辑运算符
    and     布尔“与”   x and y     如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
    or      布尔“或”   x or y      如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
    not     布尔“非”   not x       如果 x 为 True,返回 False 。如果 x 为 False,它返回 True'''

a = 10
b = 5
print(a and b)  #输出 5
print(a or b)   #输出 10
print(not a)    #输出 False

a = 0
print(a and b)  #输出 0
print(a or b)   #输出 5
print(not a)    #输出 True

'''
python成员运算符
    in          如果在指定的序列中找到值返回 True,否则返回 Falsenot in      如果在指定的序列中没有找到值返回 True,否则返回 False'''
list1 = [1,'aa','bb',22]
set1 = {1, 'cc', 'ee', 33}
tuple1 = (2, 'dd')
a = 1
b = 'cc'
if(a in list1):             #输出 a在list1中
    print('a在list1中')
else:
    print('a不在list1中')

if (a in set1):             #输出 a在set1中
    print('a在set1中')
else:
    print('a不在set1中')

if (a in tuple1):           #输出 a不在tuple1中
    print('a在tuple1中')
else:
    print('a不在tuple1中')

if (b in list1):            # 输出 b不在list1中
    print('b在list1中')
else:
    print('b不在list1中')

if (b in set1):             # 输出 b在set1中
    print('b在set1中')
else:
    print('b不在set1中')

if (b in tuple1):           # 输出 b不在tuple1中
    print('b在tuple1中')
else:
    print('b不在tuple1中')

'''
python身份运算符:身份运算符用于比较两个对象的存储单元
    is          判断两个标识符是不是引用自一个对象
    is not      判断两个标识符是不是引用自不同对象
    
    is== 区别:
        is 用于判断两个变量引用对象是否为同一个(值一样,内存地址也要一样)
        == 用于判断引用变量的值是否相等。(值一样)
'''
a = 10
b = 10

if(a is b):             #输出 a和b相同
    print('a和b相同')
else:
    print('a和b不相同')

b = 30
if(a is b):             #输出 a和b不相同
    print('a和b相同')
else:
    print('a和b不相同')

if (a is not b):        # 输出 a和b不相同
    print('a和b不相同')
else:
    print('a和b相同')

#1、整型 is比较
cc,dd = -22,-22
print(id(cc))       #输出 2557900658960
print(id(dd))       #输出 2557900658960
if(cc is dd):             #输出 整型cc和dd相同
    print('整型cc和dd相同')
else:
    print('整型cc和dd不相同')

# 2、字符串 is比较
cc, dd = 'aaaa', 'aaaa'
print(id(cc))  # 输出 2557907402160
print(id(dd))  # 输出 2557907402160
if (cc is dd):  # 输出 字符串cc和dd相同
    print('字符串cc和dd相同')
else:
    print('字符串cc和dd不相同')

#3、列表 is比较
list1 = [1,2,3]
list2 = [1,2,3]
print(id(list1))  # 输出 2557907258752
print(id(list2))  # 输出 2557907348032
if (list1 is list2):  # 输出 列表list1和list2不相同
    print('列表list1和list2相同')
else:
    print('列表list1和list2不相同')

# 4、集合 is比较
set1 = {1, 2, 3}
set2 = {1, 2, 3}
print(id(set1))  # 输出 1636731656224
print(id(set2))  # 输出 1636733881248
if (set1 is set2):  # 输出 集合set1和set2不相同
    print('集合set1和set2相同')
else:
    print('集合set1和set2不相同')

# 5、元组 is比较
tuple1 = (1, 2, 3)
tuple2 = (1, 2, 3)
print(id(tuple1))  # 输出 2797521507456
print(id(tuple2))  # 输出 2797521507456
if (tuple1 is tuple2):  # 输出 元组tuple1和tuple2相同
    print('元组tuple1和tuple2相同')
else:
    print('元组tuple1和tuple2不相同')

# 6、字典 is比较
dict1 = {'a': 'aaa'}
dict2 = {'a': 'aaa'}
print(id(dict1))  # 输出 1822966440768
print(id(dict2))  # 输出 1822966440960
if (dict1 is dict2):  # 输出 字典dict1和dict2不相同
    print('字典dict1和dict2相同')
else:
    print('字典dict1和dict2不相同')

# 7、浮点数 is比较
float1 = 2.5
float2 = 2.5
print(id(float1))  # 输出 1508931881488
print(id(float2))  # 输出 1508931881488
if (float1 is float2):  # 输出 浮点数float1和float2相同
    print('浮点数float1和float2相同')
else:
    print('浮点数float1和float2不相同')

# 8、布尔值 is比较
flag1 = True
flag2 = True
print(id(flag1))  # 输出 140730656647272
print(id(flag2))  # 输出 140730656647272
if (flag1 is flag2):  # 输出 布尔值flag1和flag2相同
    print('布尔值flag1和flag2相同')
else:
    print('布尔值flag1和flag2不相同')

'''
 由以上测试可知:
    1、不可变数据类型(整型,浮点数,字符串,布尔值,复数,元组tuple),值相同,则内存地址也一致
    2、可变数据类型(列表list,集合set,字典dict),无论是什么情况下,内存地址都不一致
'''


'''
python 运算符优先级
    1**2~             按位取反运算符
    3* / % //      乘、除、取余、取商向下整数
    4+ -           加、减
    5<<  >>        左移动运算符、右移动运算符
    6&             按位与运算符
    7^ |           按位异或运算符、按位或运算符
    8<= < > >=     比较运算符
    9== !=         等于、不等于
    10= %= /= //= -= += *= **=     赋值运算符
    11is is not    身份运算符
    12in not in    成员运算符
    13not and or   逻辑运算符
'''

a = 1
b = 2
c = 3
print(a + b * ~c**b )   #输出 -19
#先算c的b次方得9,在按位取反得-10,再乘以b得-20,再加a得-19
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风之梦丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值