运算符
运算符的分类:
Python的运算符号包括算数运算符,关系运算符,逻辑运算符,赋值运算符和条件运算符。
注意:
除了用数字计算,字符串也可以有以下的运算
a = ‘1’
b = ‘2’
d = b * 3
c = a + b
print©
#12
print(d)
#222
负数的求模运算 (比较特殊,可自行测试一下)
1两个操作数都为负数
值的大小和两个操作数绝对值取模的结果相同,不过符号相反
a = -5
b = -3
c = a % b
print©
#-2
a = 5
b = 3
c = a % b
print©
#2
2.其中一个操作数为负数
如果有x%y,其中有一个操作数是负数则x%y的结果的符号位和y相同。
a = 5
b = -3
c = a % b
print©
#-1 和 b(-3) 符号位都是负数
a = -5
b = 3
c = a % b
print©
#1 和 b(3) 符号位都是正数
关系(比较)运算符用来比较两个值(value)之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
这里可以注意一下比较的是数值还是对象:
== 比较两个对象的值value是否相等
!= 比较两个对象的值value是否不相等
is 比较两个对象是否是同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id
这里要了解的点是字符串的比较
a = “A”
b = “a”
print(a > b)
#False
a = “bag”
b = “Bag”
print(a > b)
#True
字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同的情况下,就比第二个字符串,以此类推:
布尔值True(1)与False(0), 能很好的体现value和id的比较
print(1 == True)
#True
print(1 is True)
#False
not :可以对符号右侧的值进行非运算,对于布尔值非运算会对其进行取反操作,True变False,False变True
and:可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False。
与运算是找False的,如果第一个值为False,则不再看第二个值。
or: 或运算两个值中只要有一个True,就会返回True。或运算是找True的。
非布尔值的与或运算
• 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
• 非布尔值与运算的规则
• 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
res = False or 3
print(res)
#3
res = True and 0
print(res)
#0
赋值运算符
+= (x+= 3 相当于 x = x + 3 )
-= (x -= 3 相当于 x= x - 3 )
*= (x = 3 相当于 x = x 3 )
**= (x **= 3 相当于 x = x ** 3 )
/= (x /= 3 相当于 x = x/ 3 )
//= (x //= 3 相当于 x = x // 3 )
%= (x %= 3 相当于 x= x % 3 )
赋值运算符主要用在循环结构中,用于控制循环变量的增减。
条件运算符(三元运算符)
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
#先执行步骤1,如果步骤1为True就执行步骤2,否则步骤3
a = 10
b = 8
c = a if a > b else b
print©
#10
运算符的优先级
逻辑运算符 < 关系运算符 < 算数运算符,这里特意指出逻辑运算符的优先级(not > and > or), 其他的可查阅资料。
练习:
#以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
idol = “女神”
print("521 “+ idol + " 嫁给我好吗”)
print(“521 %s 嫁给我好吗” % idol)
print(“521 {} 嫁给我好吗”.format(idol))
print(f"521 {idol} 嫁给我好吗")
#现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a = 20
b = 15
c = 25
max = a if a>b else b
max = max if max > c else c
print(max)