python中的逻辑运算符、条件运算符、优先级、算术运算符、赋值运算符、比较运算符
程序员文章站
2022-05-18 16:41:56
...
Python之 逻辑运算符 | 条件运算符 | 优先级 | 算术运算符 | 赋值运算符 | 比较运算符
1 运算符基础介绍
(1)定义:运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”;
2 + 3
0 + 2
3 + 0
(2)运算符的分类:
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
2 算术运算符
- 加法运算符(+)
x = 1 + 2
x = 'Hello'+' '+'World'
- 减法运算符(-)
注意:得到一个负数或者是另一个数的值 这个数是整数或者是小数或者是负数 两个字符串是不能够做减法运算的
x = 5 - 7 # 结果为-2
x = 5 - True #结果为4
x = 'Python' - 'y' # 无法计算,报错
- 乘法运算符(*)
注意:两个字符串相乘(或者和一个整数)返回一个被重复若干次数的字符串
x = 'abc' * 3 # 结果:abcabcabc
x = 'abc' * -3 # 结果:空
x = 6 * -8 # 结果:-48
x = 5 * 0.5 # 结果:2.5
x = 'abc' * 0.5 # 结果:报错
print(x)
- 除法运算符(/)
注意:运算结果总会返回一个浮点类型
x = 6 / 2 #结果:3.05
x = 3 / 2 #结果:1.5
x = 5 / 0 # 报错:ZeroDivisionError: division by zero
print(x)
- 整除运算符(//)
注意:得到计算后的整数位,得到的是整数
x = 3 // 2
print(x) # 结果:1
- 取余运算符(%)
注意:取余得到的是整数
x = 6 % 4 # 结果: 2
x = 6 % 3 # 结果:0
- 幂运算(**)
注意:求一个值的几次幂
x = 2 ** 3 # 结果为 8
# 这是一种可以开平方的操作
x = 25 ** 0.5 # 结果为 6
print('x =',x)
3 赋值运算符
定义:就是赋一个值给一个变量
a = 10 # 将10赋值给a
a = 40
50 = a # 报错,命名不能为50,且a为字符串
简化的赋值写法:
x += 3 # 相当于 x = x + 3
x -= 3 # 相当于 x = x - 3
x *= 3 # 相当于 x = x*3
x **=2 # 相当于 x = x**3
x /= 3 # 相当于 x = x/3
x //= 3 # 相当于 x = x//3
print('x =',x)
4 比较运算符
(1)定义:比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False。
(2)常用运算符:
- > : 比较左侧值是否大于右侧值
- >= : 比较左侧的值是否大于或等于右侧的值
- <: 比较左侧值是否小于右侧值
- <=: 比较左侧的值是否小于或等于右侧的值
数字间的比较
r = 10 > 20 # False
r = 30 > 20 # True
r = 30 < 20 # False
r = 10 >= 10 # True
r = 2 > True # True
r = 2 > '1' # 报错
r = '2' > '1' # True,比较的是ASCII码
字符间比较
字符间比较的是ASCII码,两个对象的比较是第一个字符串,相等则递进比较下去
a = 'Jerry Python'
max(a) # 结果:y
min(b) #结果为 " " ,即空格
r = 'a' > 'b' # False
r = 'c' < 'd' # True
# 如果出现多个字符那么我们比较的方式是对外比较,比较的是字符串的第一个字符
r = '2' > '11' # True
r = 'ab' > 'b' # False
(3)特殊运算符:
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
注意:一个对象包括了id、数值、标签
一篇通俗易懂介绍python中的对象:link
r = 3 == 3 # True
r = 'hello' == 'hello' # True
r = 'abc' == 'bcd' # False 比较的是a和b
r = 'abc' != 'bcd' # True
r = 1 == True # True
5 逻辑运算符
5.1 not 逻辑非
(1)定义:not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
a = 1 # True
a = not a # Fasle
r = None # 0 空串 None ---> False
r = not r # True
5.2 and 逻辑与
- and可以对符号两侧的值进行与运算。
- 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
r = True and True # True
r = True and False # False
r = False and True # False
r = False and False # False
r = False and print('Hello') # 输出为False,不执行后面语句
r = True and print('Hello') # 输出为Hello,执行后面语句
print('r =',r)
5.3 or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
# or 逻辑或 找 True
r = True or True # True
r = True or False # True
r = False or True # True
r = False or False # False
r = True or print('Hello') # 结束为True
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
**与运算是找False的,如果第一个值是False,则不看第二个值。**如果第一个值是False,则直接返回第一个值,否则返回第二个值
# 非布尔值类型的与运算
# True and True
r = 1 and 2 # 2 找False
r = 1 and 0 # 0
r = 0 and 1 # 0
r = 0 and None # 0
r = 2 and 1 # 1
- 非布尔值或运算的规则
**或运算是找True的,如果第一个值是True,则不看第二个值。**如果第一个值是True,则直接返回第一个值,否则返回第二个值
# 非布尔值类型的或运算 找True
# True or True
r = 1 or 2 # 1
r = 1 or 0 # 1
r = 0 or 1 # 1
r = 0 or None # None
r = 1 < 2 < 3 # True 1 < 2 and 2 < 3 两边都是True
6 条件运算符
(1)原理:条件运算符在执行时,会先对条件表达式进行求值判断:
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
(2)应用 - 比较大小值
# 两个值的比较
a = 30
b = 50
print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else b
print(max)
# 三个值的比较
a = 4
b = 8
c = 9
max_1 = a if a > b else b
max = max_1 if max_1 > c else c
print(max)
- 编程实现用户登录
'''
提示登录的用户输入用户名和密码;
如果用户名和密码都输入正确, 则提示“欢迎登录”
如果用户名或密码输入错误,则提示“用户名或密码输入错误”
假定用户名是:steven,密码是:123456
'''
username = input("请输入用户名:")
password = input("请输入密码:")
result = "欢迎登录!"ifusername == "steven" and password == "123456"else"用户名或密码输入错误!"
print(result)
总结 :Python中的条件表达式如:c = a if a>b else b 先执行中间的if,执行完如果是True,就返回左边的结果,如果是False就返回右边的结果。
7 运算符的优先级
优先级关系为:( ) > not > and > or
运算符的优先级参考链接:link
a = 2 + 3 * 4 # 结果为14
a = 2 or 3 and 4 # 结果为2
print(a)
# 优先级关系为:( ) > not > and > or
a = not 4 > 2 and 5 > 6 or 3 < 4 # True ,首先 not 4 > 2 为False,然后 and 5 > 6 为False ,接着 or 3 < 4 为True。or为找True,所以是True
a = not( 4 > 2 and 5 > 6 or 3 < 4) # False,括号内为True, not True,即为False
print(a)