python运算符

1.运算符

1.1 运算符的概念

运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例 如:2+3,其操作数是2和3,⽽运算符则是“+”

1.2 运算符的分类

算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)

2. 算术运算符

加法运算符 表现形式 +

加法运算符
a=1+2

b='1'+'2'

print(a)   # 3

print(b)   # 12

print(type(b))    # <class 'str'>

# 可以用做字符串的拼串

减法运算符 表现形式 -

减法运算符
a=1-2

b='1'-'2'

print(a)   #-1

print(b)   # 报错,字符串不能做减法运算

**乘法运算符 表现形式 ***

乘法运算符
a=2*3

b='2'*'3'

c='2'*3

print(a)    # 6

print(b)    # 报错

print(c)    # 222   相当于'2'+'2'+'2'

除法运算符 表现形式 /

除法运算符
a=6/2

print(a,type(a))   #  3.0 <class 'float'>

# 除法运算符返回的是 浮点数类型
# 字符串不能在除法运算符中使用

整除 表现形式 //

整除,只会保留计算后的整数位,总会返回⼀个整型 表现形式 //
a=6//3

print(a,type(a))    # 2 <class 'int'>

# 整除返回整数类型

取模 表现形式 %

取模,求两个数相除的余数
a=7%3

b=7%4

print(a,b,type(a),type(b))    # 1 3 <class 'int'> <class 'int'>

幂运算 表现形式 **

幂运算,求⼀个值的⼏次幂
a=2**4

print(a,type(a))   # 16 <class 'int'>

3. 赋值运算符

1. 复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是⼀样的
2. += (x+= 3 相当于 x = x + 3 )
3. -= (x -= 3 相当于 x= x - 3 )
4. *= (x = 3 相当于 x = x 3 )
5. **= (x **= 3 相当于 x = x ** 3 )
6. /= (x /= 3 相当于 x = x/ 3 )
7. //= (x //= 3 相当于 x = x // 3 )
8. %= (x %= 3 相当于 x= x % 3 )

4. ⽐较运算符

比较运算符用来比较两个值之间的关系,总会返回⼀个布尔值.如果关系成 ⽴,返回True,否则返回False。

例如
a=2>3   # False
b=3>2   # True
print(a,b)   # False True

>= 比较左侧的值是否⼤于或等于右侧的值
< 比较左侧值是否小于右侧值
<= 比较左侧的值是否小于或等于右侧的值
特殊的比较⽅式
== 比较两个对象的值是否相等
!= 比较两个对象的值是否不相等
is 比较两个对象是否是同⼀个对象,比较的是对象的id
is not 比较两个对象是否不是同⼀个对象比⽐较的是对象的id

例如
a=0==False
b=0 is False
print(a)    # True
print(b)    # False

5. 逻辑运算符

5.1 not 逻辑 非

not可以对符号右侧的值进行 运算,对于布尔值, 运算会对其进行取反操 作,True变False,False变True

例如:逻辑非 0 空串 还有一些表示空性的值会转换为False,其余的全部都是True
a=1
a=not a
print(a)   # False
# 因为不是空性的值所以是True,但经过not(取反后)是False
b=0
b=not b
print(b)  # True
# 因为是空性的值所以是False,但经过not(取反后)是True

5.2 and 逻辑 与

and可以对符号两侧的值进⾏与运算。 只有在符号两侧的值都为True时,才 会返回True,只要有⼀个False就返回False。
与运算是找False的

5.3 or 逻辑 或

或运算两个值中只要有⼀个True,就会返回True
或运算是找True的

5.4 非布尔值的与或运算

当我们对布尔值进⾏与或运算时,Python会将其当做布尔值运算,最终会 返回原值

5.4.1.非布尔值 与 运算的规则

与运算是找False的,如果第⼀个值为False,则不再看第⼆个值直接输出第一个,假如第一个是True,那么直接输出第二个值

# 与运算是找False的,如果第⼀个值为False,则不再看第⼆个值直接输出第一个,假如第一个是True,那么直接输出第二个值
a=2
b=1
c=a and b
print(c)   # 1
# 2 and 1 因为2和1不是空性的值所以都是True,则直接输出第二个值 1
5.4.2.非布尔值 或 运算的规则

或运算是找True的,如果第⼀个值是True,则不看第⼆个值。如果第⼀个 值是True,则直接返回第⼀个值,否则返回第⼆个值

a=1
b=3
c=a or b
print(c) # 1 
# 如果第⼀个值是True,则不看第⼆个值,直接返回第一个值

6. 条件运算符(三元运算符)

条件运算符在执⾏时,会先对条件表达式进⾏求值判断 如果判断结果为True,则执⾏语句1,并返回执⾏结果 如果判断结果为False,则执⾏语句2,并返回执⾏结果 语法: 语句1 if 条件表达式 else 语句2

7. 运算符的优先级

在这里插入图片描述

8.变量在内存中的原理

# 整数 不可变类型 当值强制改变的时候 id会改变
a=15
b=15
print(id(a),id(b)) # 1423142352 1423142352

# 字符串 不可变类型 当值强制改变的时候 id会改变
str1='你好'
str2='你好'
print(id(str1),id(str2)) # 2980924092064 2980924092064

# 列表 可变类型 当值发生改变的时候 id不会改变
list1=[1,2,3,4,5]
list2=[1,2,3,4,5]
print(id(list1),id(list2)) # 2404937742408 2404937742472

# 浅拷贝
# 只能拷贝数据类型的第一层数据
a='abv'
list_1=[1,2,3,4,a]
list_2=list_1.copy()
print(id(list_1),id(list_2))  # 3012676925704 3012676925640
print(id(list_1[4]),id(list_2[4]))  # 3012676911712 3012676911712

作业

第一题作业

# 以4种格式化字符串的⽅式来实现 521 xxx 嫁给我好吗?
# 1.拼串
str1='521 '+'python '+' 嫁给我好吗?'
print(str1)
# 2.传参
str1='521'
str2='python'
str3='嫁给我好吗?'
print(str1,str2,str3)
# 3.%s,占位符
str1='521 %s 嫁给我好吗?'
print(str1%'python')
# 4.%f 浮点数占位
a='python'
str1=f'521 {a}嫁给我好吗?'
print(str1)
# 521 python  嫁给我好吗?
# 521 python 嫁给我好吗?
# 521 python 嫁给我好吗?
# 521 python嫁给我好吗?

第二题作业

# 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最⼤值
a=500
b=20
c=990
result=(a if a>b else b) if (a if a>b else b) > c else c
print(result) # 990
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值