python入门学习之运算符

一、运算符

运算符可以对一个值或多个值进行运算或各种操作。比如:+、-、*、= 都属于运算符。

二、运算符的分类

1.算术运算符
2.赋值运算符
3.比较运算符(关系运算符)
4.逻辑运算符
5.条件运算符(三元运算符)

三、算术运算符

  • 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
  • 减法运算符
  • 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
  • / 除法运算符,运算时结果总会返回一个浮点类型
  • // 整除,只会保留计算后的整数位,总会返回一个整型
  • ** 幂运算,求一个值的几次幂
  • % 取模,求两个数相除的余数
    代码示例:
# + 加法运算符
a = 10 + 6  # 6
a = 'hello' + '' + 'world'  # helloworld

# - 减法运算符
a = 10 - 5  # 5
a = 5 - True  # 4
a = a - 2  # 用变量a的值减去2,然后再赋值给a 结果2

# * 乘法运算符
a = 5 * 5  # 25
a = 'hello-' * 3  # hello-hello-hello-

# /除法运算符,运算结果会返回一个浮点类型
a = 10 / 5  # 2.0
a = 5 / 2  # 2.5
a = 10 / 3  # 3.3333333333333335

# //整除运算符,只会保留计算后的整数位,返回的是一个整型
a = 10 // 3  # 2
a = 5 // 2  # 2

# ** 幂运算符,求一个值的几次幂运算
a = 2 ** 2  # 4
a = 16 ** 0.5  # 求16的平方根,结果是4.0

# % 取模,求两个数相除的余数
a = 10 % 5  # 0
a = 10 % 4  # 2
a = 10 % 3  # 1
print(a)

四、赋值运算符

= :可以将等号右侧的值赋值给等号左侧的变量
+= :a += 5 相当于 a = a + 5
-= :a -= 5 相当于 a = a - 5
*= :a *= 5 相当于 a = a * 5
**= :a **= 5 相当于 a = a ** 5
/= :a /= 5 相当于 a = a / 5
//= :a //= 5 相当于 a = a // 5
%= :a %= 5 相当于 a = a % 5

代码示例:

a = 10
a -= 5 # 5
a *= 5 # 25
a **= 2 # 625
a /= 25 # 25.0
a = 25.0  # 在对浮点数做算术运算时,结果也会返回一个浮点数
a //= 5 # 5.0
print('a =', a)
a = 5
a %= 4 # 1

五、关系运算符

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

2、关系运算符分类

 >  :比较左侧值是否大于右侧值
>= :比较左侧的值是否大于或等于右侧的值
<: 比较左侧值是否小于右侧值
<=: 比较左侧的值是否小于或等于右侧的值
 ==: 比较两个对象的值是否相等
!= :比较两个对象的值是否不相等

3、关系运算符比较的是什么?
相等和不等比较的是对象的值,而不是id

  • is 比较两个对象是否是同一个对象,比较的是对象的id。
  • is not 比较两个对象是否不是同一个对象,比较的是对象的id。
    4、代码示例:
result = 10 > 20 # False
result = 30 > 20 # True
result = 30 < 20 # False
result = 10 >= 10 # True
print(result)

5、python中对字符串进行比较:

(1)在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
(2)当对字符串进行比较时,实际上比较的是字符串的Unicode编码
(3)比较两个字符串的Unicode编码时,是逐位比较的
利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较

字符串比较代码示例:

  2        1
 0032 > 0031
result = '2' > '1' # True
result = '2' > '11' # True
 a        b
 0061 > 0062
result = 'a' > 'b' # False
result = 'c' < 'd' # True
result = 'ab' > 'b' # False```


result = 1 == 1  # True
result = 'hello' == 'hello' # True
result = 'abc' == 'bcd' # False
result = 'abc' != 'bcd' # True
result = 1 == True # True
result = 1 is True # False
result = 1 is not True # True
print('result =',result)
print(id(1),id(True))  # 4363114432 4362732416

六、逻辑运算符

1、逻辑运算符主要用来做一些逻辑判断
2、逻辑运算符分类

(1)not 逻辑非:
not可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作,True变False,False变True
对于非布尔值,非运算会先将其转换为布尔值,然后再取反。
(2)and 逻辑与
and可以对符号两侧的值进行与运算
只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
与运算是找False的
Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值。
(3)or 逻辑或
or 可以对符号两侧的值进行或运算
或运算两个值中只要有一个True,就会返回True
或运算是找True的
Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值

代码示例:

a = True
a = not a # 对a进行非运算 False

a = 1
a = not a  # False

a = ''
a = not a  # True

# 逻辑与运算:只有and两边都为true,才会返回true
result = True and True # True
result = True and False # False
result = False and True # False
result = False and False # False

# True and print('你猜我出来吗?') 第一个值是True,会看第二个值,所以print()会执行
# False and print('你猜我出来吗?')第一个值是False,不会看第二个值,所以print()不会执行

# 逻辑或运算   或运算两个值中只要有一个True,就会返回True
result = True or True # True
result = True or False # True
result = False or True # True
result = False or False # False

False or print('你猜我出来吗?') 第一个值为False,继续看第二个,所以打印语句执行
# True or print('你猜我出来吗?') 第一个值为True,不看第二个,所以打印语句不执行

3、非布尔值的与或运算

(1)当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值。
(2) 与运算的规则
与运算是找False的,如果第一个值是False,则不看第二个值
如果第一个值是False,则直接返回第一个值,否则返回第二个值
(3)或运算的规则
或运算是找True的,如果第一个值是True,则不看第二个值
如果第一个值是True,则直接返回第一个值,否则返回第二个值

代码示例:

# 非布尔值的与运算
# True and True
result = 1 and 2   # 2
# True and False
result = 1 and 0 # 0
# False and True
result = 0 and 1 # 0
# False and False
result = 0 and None # 0

# 非布尔值的或运算
# True or True
result = 1 or 2 # 1
# True or False
result = 1 or 0 # 1
# False or True
result = 0 or 1 # 1
# False or False
result = 0 or None # None

4、逻辑运算符可以连着使用

都是和中间的值比较。 1和2比较,同时2和3比较。
result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3  # True 
result = 10 < 20 > 15   # True
print(result)  

七、条件运算符-三元运

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

代码示例:

print('你好') if False else print('Hello')  # Hello

a=30
b = 50
# 获取a和b之间的较大值
max = a if a > b else b
print(max)   # 50

a = 40
b = 50
c = 30

# 通过条件运算符获取三个值中的最大值
方式一:
# max = a if a > b else b
# max = max if max > c else c
#print(max) # 50
方式二:
max = a if (a > b and a > c) else (b if b > c else c) # 不推荐这么使用
方式三:
# max = a if (b < a > c) else (b if b > c else c)
 print(max) # 50

七、运算符的优先级

和数学中一样,在Python运算也有优先级,比如先乘除 后加减
运算符的优先级可以根据优先级的表格来查询,
在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
如果优先级一样则自左向右计算
关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序

代码示例:

# 一样 and高 or高
# 如果or的优先级高,或者两个运算符的优先级一样高
#   则需要先进行或运算,则运算结果是3
# 如果and的优先级高,则应该先计算与运算
#   则运算结果是1
a = 1 or 2 and 3  
print(a) # 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值