Python 基础入门 3 运算符与表达式

# 运算符分算术运算符,赋值运算符,复合运算符,逻辑运算符,位运算符

# 算术运算用于Number数据类型的运算,部分算术运算符可用于String数据类型
# 算术运算符:+(加),-(减),*(乘),/(除),%(求余),**(求幂) 相当于pow()函数,//(取整)
# print(5+2 , 5-2 , 5*2 , 5/2 ,5%2 , 5**2 , 5//2)
# print("a"*2+"abc"*4)

#赋值运算符用于给变量赋值,赋值运算符:=
# Num1 = 1
# print(Num1)

#复合运算符:+=,-=,*=,/=,%=,**=,//=
#复合运算相当于算术运算后赋值给变量 即:a += 1 相当于 a = a+1
# Num2=Num3=Num4=Num5=Num6=Num7=Num1
# Num1 += 1
# Num2 -= 1
# Num3 *= 2
# Num4 /= 0.2
# Num5 %= 2
# Num6 **= 0
# Num7 //= 2
# print(Num1 , Num2 ,Num3 ,Num4 ,Num5 ,Num6 , Num7)

#逻辑运算符:<,>,<=,>=,==,!=(不等于),and(与),or(或),not(非)
#逻辑运算用于运算事的真与假. 假的值有 0,0.0,False,none,空,其余则为真
print(int(0>1)and int(0<1))
print(0>1or 0<1)
print(not 0)

#成员运算符: in ,not in
#用于判断序列(string数据类型也是序列的一种)中是否有对应的值

#身份运算符: is , is not
#用于判断变量是否引用同一个对象
Str1, Str2 ="string","strint"
print(Str1 is Str2)

#位运算符是按位运算符是把数字看做二进制进行计算,当运算完后是新的补码,并不是原码
# 位运算符:&(与) ,|(或),^(异或),~(取反)
# &位运算符计算,在相应的位数上都为1,则该位的结果为1,否则为0
# print(-5 & 7)
"""
-5的二进制 1000 0101
-5的补码 1111 1011
7的二进制 0000 0111
-------------------------
-5 & 7 = 0000 0011(二进制)= 3(十进制)
"""
# |位运算符计算,在相应的位数上只要有1,则该位为1,否则为0
# print( -6 | 4)
"""
6的二进制 0000 0110
-6的二进制 1000 0110
-6的反码 1111 1010
4的二进制 0000 0100
------------------------
6 | 4 = 0000 0110(二进制) = 6(十进制)
-6 | 4 = 1111 1110 (二进制补码) = 1000 0010(原码) = -2
"""
# ^ 位运算符计算,在相对的位数上相异时,该位为1,否则为0
# print(-7 ^ 2)
"""
-7的二进制:1000 0111
2的二进制:0000 0010
-----------------------
7 ^ 2 :1000 0101 = -5 (十进制)
"""

# ~位运算符计算,对于二进制补码数据位取反
# print(~7)
"""
7的补码: 0000 0111
~7的补码: 1111 1000
~7的反码: 1111 0111
~7的原码: 1000 1000 = -8 (十进制)
"""

# << 位运算符号:各二进制全部左移动若干位,有《右边的数字(数字只能是正整数)决定,
# 高位丢弃(这里的高位不代表符号,代表的是值),低位补0
# print(-1 << 8)
"""
-1 二进制 :1000 0001
左移动8位 :1001 0000 0000 = -2的8次方(十进制)
"""

# >> 位运算符:各二进制全部右移动,由>>右边的数字(正整数)决定,
# 计算方式和<<位运算符一致
# print(-256 >> 8)
"""
-256 二进制 :1001 0000 0000
右移动8位 :1000 0001
"""







猜你喜欢

转载自www.cnblogs.com/hjlin/p/10628402.html