#!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
二进制负数转十进制 :
1、1110 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,否则返回 False。
not 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、= %= /= //= -= += *= **= 赋值运算符
11、is is not 身份运算符
12、in not in 成员运算符
13、not and or 逻辑运算符
'''
a = 1
b = 2
c = 3
print(a + b * ~c**b ) #输出 -19
#先算c的b次方得9,在按位取反得-10,再乘以b得-20,再加a得-19
python运算符
最新推荐文章于 2024-11-13 10:55:36 发布