运算符

算数运算符

print(1+1)
print(1.0+2.0)
print('zhang'+'san')#拼接字符串
#print('abc'+123)#python 数字和字符串不能进行加法运算
print('%s'%('abc'+str(123)))#数据类型转换
print(10-8)
print(4.0-1)
print(5*5)
print(10/3)#3.33333333333333333
幂运算
print(5**3)#5的三次方
print(81**(1/2))#小括号运算优先级
整除
print(10//3)#保留整数部分   3
取余
print(10%3)#保留余数部分   1
优先级

混合运算时,优先级顺序为: ** 高于 * / % // 高于 + - ,为了避免歧义,建议使用 () 来处理运算符优先级。 并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。

算术运算符在字符串里边使用
print('加勒比海盗'+'哈利波特')
print("~"*50)
print('蒙奇D路飞'+'波雅汉库克')
print("~"*50)#只适应加,乘

赋值运算符

# = 赋值
# 1+1=2 这是数学领域  = 表示相等
res = 1+1 #把2 赋值给res
print(res)#2
#编程领域  等号左边一定不能是表达式(1+1)
#复合运算符
x = 0 #初始化一个变量 如果不初始化 下面就报错
x+= 10 #等同于 x = x+10
print(x)
x-= 10 #x=x-10
print(x)
x*= 10 #x=x*10
print(x)
x/= 10 #x=x/10
print(x)
x%= 10 #x=x%10
print(x)
x**= 10 #x=x**10
print(x)
x//= 10 #x=x//10
print(x)
#传递赋值
num1=num2=num3=num4=num5=10
print(num1,num2,num3,num4,num5)

#拆包
num6,num7=8,9
print(num6,num7)

str='holle','world','bad'
print(str)#('holle', 'world', 'bad')
print(type(str))#<class 'tuple'>元组

#拆包长度不一致时候
#用可变长度解决问题,只能有一个变量是可变长度
*x,y,z=1,2,3,4,5,6,7,8,9,0
print(x,y,z)
x,*y,z=1,2,3,4,5,6,7,8,9,0
print(x,y,z)
x,y,*z=1,2,3,4,5,6,7,8,9,0
print(x,y,z)

#用拆包交换数据
num1=100
num2=200
num1,num2=num2,num1
print(num1,num2)#200 100

比较运算符

#Python 比较运算符 返回结果一定是bool类型 Ture或者False
print(4>5)#False
print(4<5)#True
if 4>5:
    print(0)
else:print(1)

print(4>=5)#False
print(4<=5)#True
if 4>=5:
    print(0)
else:print(1)

print('123'!=123)#True
if'123'!=123:
    print(111)
else:
    print(000)

#字符串与字符串之间比较用ASCII码
#a 97 A 65
print('a'>'b') #False 将ASCII码 97 b 98 所以结果是False
print('dbc'>'b') #True  将第一个字符传承ASCII码 然后跟b进行比较
#数字和字符串之间进行比较 只能用 == !=
print('a' == 97)#False 不转成ASCII码,所以不相等
print('a'!= 97)#True

逻辑运算符

#Python 逻辑运算符 返回结果不一定是bool类型 
#and 逻辑 与
#都是Ture,结果才是Ture,只要有一个是False,结果就是False
print(2>1 and 5>4 and 10>9)#True
print(2>1 and 5>4 and 10<9)#False

#or 逻辑 或
#只要有一个是Ture那结果就是Ture,左右两边都是False,结果就是False
print(2>1 or 3>4 or 10<9)#True
print(0>1 or 3>4 or 10<9)#False

#not  逻辑非
#原来真not后变成假,原来是假not后变成真
print(not(5>2))#False
print(not(None))
print(not(int(0)))
print(not(float(0.0)))
print(not(str('')))
print(not(dict({})))
print(not(list([])))
print(not(set()))
逻辑运算符短路问题
#当and or左右两边都是表达式的时候 结果是Ture和False

#and只要左边是真 继续往后边运行 只要左边为假 立即终止
4>3 and print('Hilda')
4<3 and print('加勒比海盗')#因为4<3短路 不再往右运行
#Hilda

#or 只要左边为真 立马终止 左边是假 继续往右运行
5>4 or print("海贼王")
5<4 or print("火影")
#火影

#是不是逻辑运算符 结果一定是bool类型 不一定的
#下面都是进行了隐式类型转换
print(3 and 4 and 0 and 5)#0短路 不往后运行 直接抛出 0
#0
print('路飞' and '乔巴' and '山治')#前面都是真输出最后一个
#山治
print(0 or [] or {} or 0.0 or 'Hilda' or 'ok')#'Hilda"为真 短路直接抛出Hilda
#Hilda
print(0 or [] or {} or 0.0 or set())#前面都是 假 输出最后一个
#set()

位运算符

# 前提 先将数字转换成二进制
# 按位 与 &   两个都是1时结果是1
# 按位 或 |   两个都是0时结果是0
# 按位 异或 ^   两个数字相同是0 不同为1
# 按位 左移 <<   高位丢弃 低位补0
# 按位 右移 >>   高位补0
# 按位 取反 ~   0变1  1变0


num1=10  #00001010
num2=53  #00110101
print(num1&num2)#0
print(num1|num2)#63 00111111
print(num1^num2)#63 00111111
num3 = 5 #0000 0101
print(num3 >> 3)#0000 0000 101 0
num4=10#00001010
print(num4 << 5)#101000000  320
num5=100
print(~num5)#-101

#颜色三中表示方式1.red green blue2.0xabcdef3.rgb(0-255,0-255,0-255)
color = 0xF0ABC1
red = color >> 16
green = color >> 8 & 0xFF
blue = color & 0xFF
print(red) #240
print(green) # 171
print(blue) # 193
print(hex(red),hex(green),hex(blue)) #转成16进制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值