Python基础——python入门4(运算符|算术|赋值|关系|逻辑|条件|运算符的优先级)
如果判断结果为False,则执行语句2,并返回执行结果。如果判断结果为True,则执行语句1,并返回执行结果。条件运算符在执行时,会先对条件表达式进行求值判断。如果or的优先级高,或者两个运算符的优先级一样高。如果and的优先级高,则应该先计算与运算。则需要先进行或运算,则运算结果是3。判断 and 和 or。一样 and高 or高。
·
一、运算符(操作符)
- 运算符可以对一个值或多个值进行运算或各种操作
- 比如 + 、-、= 都属于运算符
- 运算符的分类:
- 1.算术运算符
- 2.赋值运算符
- 3.比较运算符(关系运算符)
- 4.逻辑运算符
- 5.条件运算符(三元运算符)
1.1 算术运算符
加法运算符 +
- 如果是两个字符串之间进行加法运算,则会进行拼串操作
a = 10 + 5 # 计算
print("a =",a)
a = 'hello' + ' ' + 'world' # 拼串
print("a =",a)

减法运算符 -
a = 10 - 5 # 计算
print("a =",a)
a = 5 - True
print("a =",a)
a = a - 2 # 用变量a的值减去2,然后再赋值给a
print("a =",a)

乘法运算符 *
- 如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数
a = 5 * 5
print("a =",a)

除法运算符 /
- 运算时结果总会返回一个浮点类型
- // 整除,只会保留计算后的整数位,总会返回一个整型
a = 10 / 5
print("a =",a)
a = 5 / 2
print("a =",a)
a = 10 / 3
print("a =",a)

a = 10 // 3
print("a =",a)
a = 5 // 2
print("a =",a)

幂运算 **
- 求一个值的几次幂
a = 2 ** 2
print("a =",a)
a = 10 ** 5
print("a =",a)
a = 16 ** 0.5 # 求16的平方根
print("a =",a)

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

1.2 赋值运算符
- = 可以将等号右侧的值赋值给等号左侧的变量
- 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
print('a =',a)
a += 5
print('a =',a)
a -= 5
print('a =',a)
a *= 5
print('a =',a)
a **= 2
print('a =',a)
a /= 25
print('a =',a)
a = 25.0 # 在对浮点数做算术运算时,结果也会返回一个浮点数
print('a =',a)
a //= 5
print('a =',a)
a = 5
print('a =',a)
a %= 4
print('a =',a)

1.3 关系运算符
关系运算符用来比较两个值之间的关系,总会返回一个布尔值。如果关系成立,返回True,否则返回False
- 比较左侧值是否大于右侧值 >
- 比较左侧的值是否大于或等于右侧的值 >=
- 比较左侧值是否小于右侧值 <
- 比较左侧的值是否小于或等于右侧的值 <=
result = 10 > 20 # False
print('result =',result)
result = 30 > 20 # True
print('result =',result)
result = 30 < 20 # False
print('result =',result)
result = 10 >= 10 # True
print('result =',result)

- 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
- 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
- 比较两个字符串的Unicode编码时,是逐位比较的
- 利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
- 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
result = 'a' > 'b' # False
print('result =',result)
result = 'c' < 'd' # True
print('result =',result)
result = 'ab' > 'b' # False
print('result =',result)
print(int('2') > int('11'))

- 比较两个对象的值是否相等 ==
- 比较两个对象的值是否不相等 !=
- 相等和不等比较的是对象的值,而不是id
result = 1 == 1 # True
print('result =',result)
print(id(1),id(True))
result = 'hello' == 'hello' # True
print('result =',result)
print(id(1),id(True))
result = 'abc' == 'bcd' # False
print('result =',result)
print(id(1),id(True))
result = 'abc' != 'bcd' # True
print('result =',result)
print(id(1),id(True))
result = 1 == True # True
print('result =',result)
print(id(1),id(True))

- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
result = 1 is True # False
print('result =',result)
print(id(1),id(True))
result = 1 is not True # True
print('result =',result)
print(id(1),id(True))

1.4 逻辑运算符
逻辑运算符主要用来做一些逻辑判断
- not 逻辑非
- not可以对符号右侧的值进行非运算
- 对于布尔值,非运算会对其进行取反操作,True变False,False变True
- 对于非布尔值,非运算会先将其转换为布尔值,然后再取反
- not可以对符号右侧的值进行非运算
a = True
a = not a # 对a进行非运算
print('a =',a)
a = ''
a = not a
print('a =',a)

- and 逻辑与
- and可以对符号两侧的值进行与运算
- 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的
- Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
result = True and True # True
print(result)
result = True and False # False
print(result)
result = False and True # False
print(result)
result = False and False # False
print(result)

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

- or 逻辑或
- or 可以对符号两侧的值进行或运算
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
- Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
result = True or True # True
print(result)
result = True or False # True
print(result)
result = False or True # True
print(result)
result = False or False # False
print(result)

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

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

# True or True
result = 1 or 2 # 1
print(result)
# True or False
result = 1 or 0 # 1
print(result)
# False or True
result = 0 or 1 # 1
print(result)
# False or False
result = 0 or None # None
print(result)

1.5 条件运算符(三元运算符)
- 语法: 语句1 if 条件表达式 else 语句2
- 执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
print('你好') if False else print('Hello')
a = 30
b = 50
print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else b
print(max)

a = 40
b = 50
c = 30
# 通过条件运算符获取三个值中的最大值
max = a if a > b else b
max = max if max > c else c
print(max)

1.6 运算符的优先级
- 和数学中一样,在Python运算也有优先级,比如先乘除 后加减
- 运算符的优先级可以根据优先级的表格来查询,
- 在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
- 如果优先级一样则自左向右计算
- 关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
- 在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序
判断方式
判断 and 和 or
一样 and高 or高
如果or的优先级高,或者两个运算符的优先级一样高
则需要先进行或运算,则运算结果是3
如果and的优先级高,则应该先计算与运算
则运算结果是1
a = 1 or 2 and 3
print(a)

补充:逻辑运算符可以连着使用
# 逻辑运算符可以连着使用
result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3
print(result)
result = 10 < 20 > 15
print(result)

更多推荐



所有评论(0)