Python语⾔⽀持很多种运算符,先⽤⼀个表格为⼤家列出这些运算符,然后选择⼀些⻢上就会⽤到的运算符为⼤家进⾏讲解。
说明: 上⾯这个表格实际上是按照运算符的优先级从上到下列出了各种运算符。所谓优先级就是 在⼀个运算的表达式中,如果出现了多个运算符,应该先执⾏哪个运算再执⾏哪个运算的顺序。 在实际开发中,如果搞不清楚运算符的优先级,可以使⽤圆括号来确保运算的执⾏顺序。
算术运算符
Python中的算术运算符⾮常丰富,除了⼤家最为熟悉的加减乘除之外,还有整除运算符、求模(求余数)运算符和求幂运算符。下⾯的例⼦为⼤家展示了算术运算符的使⽤。
"""
算术运算符
"""
print(321 + 123) # 加法运算
print(321 - 123) # 减法运算
print(321 * 123) # 乘法运算
print(321 / 123) # 除法运算
print(321 % 123) # 求模运算
print(321 // 123) # 整除运算
print(321 ** 123) # 求幂运算
赋值运算符
赋值运算符应该是最为常⻅的运算符,它的作⽤是将右边的值赋给左边的变量。下⾯的例⼦演示了赋值运算符和复合赋值运算符的使⽤。
"""
赋值运算符和复合赋值运算符
"""
a = 10
b = 3
a += b # 相当于:a = a + b
a *= a + 2 # 相当于:a = a * (a + 2)
print(a) # 算⼀下这⾥会输出什么
⽐较运算符和逻辑运算符
⽐较运算符有的地⽅也称为关系运算符,包括 == 、 != 、 < 、 > 、 、 >= ,我相信没有什么好解释 的,⼤家⼀看就能懂,需要提醒的是⽐较相等⽤的是 == ,请注意这⾥是两个等号,因为 = 是赋值运算 符,我们在上⾯刚刚讲到过, == 才是⽐较相等的运算符;⽐较不相等⽤的是 != ,这不同于数学上的不 等号,Python 2中曾经使⽤过 <> 来表示不等关系,⼤家知道就可以了。⽐较运算符会产⽣布尔值,要 么是 True 要么是 False 。 逻辑运算符有三个,分别是 and 、 or 和 not 。and 字⾯意思是“⽽且”,所以 and 运算符会连接两个布尔 值,如果两个布尔值都是 True ,那么运算的结果就是 True ;左右两边的布尔值有⼀个是 False ,最终 的运算结果就是 False 。相信⼤家已经想到了,如果 and 左边的布尔值是 False ,不管右边的布尔值是 什么,最终的结果都是False ,所以在做运算的时候右边的值会被跳过(短路处理),这也就意味着 在 and 运算符左边为False 的情况下,右边的表达式根本不会执⾏。 or 字⾯意思是“或者”,所以 or 运 算符也会连接两个布尔值,如果两个布尔值有任意⼀个是 True ,那么最终的结果就是 True 。当 然, or 运算符也是有短路功能的,在它左边的布尔值为 True 的情况下,右边的表达式根本不会执。 not 运算符的后⾯会跟上⼀个布尔值,它的作⽤是得到与该布尔值相反的值,也就是说, not 后⾯ 的布尔值如果是 True ,运算结果就是 False ;⽽ not 后⾯的布尔值如果是 False ,运算结果就 是 True 。
"""
⽐较运算符和逻辑运算符的使⽤
"""
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not (1 != 2)
print('flag0 =', flag0) # flag0 = True
print('flag1 =', flag1) # flag1 = True
print('flag2 =', flag2) # flag2 = False
print('flag3 =', flag3) # flag3 = False
print('flag4 =', flag4) # flag4 = True
print('flag5 =', flag5) # flag5 = False
说明:⽐较运算符的优先级⾼于赋值运算符,所以 flag0 = 1 == 1 先做 1 == 1 产⽣布尔 值 True ,再将这个值赋值给变量 flag0 。 print 函数可以输出多个值,多个值之间可以⽤ , 进⾏ 分隔,输出的内容之间默认以空格分开。
"""
算术运算符
"""
print(321 + 123) # 加法运算
print(321 - 123) # 减法运算
print(321 * 123) # 乘法运算
print(321 / 123) # 除法运算
print(321 % 123) # 求模运算
print(321 // 123) # 整除运算
print(321 ** 123) # 求幂运算
1 2 3 4 5 6 7 8 9 10 11 12 13
"""
赋值运算符和复合赋值运算符
"""
a = 10
b = 3
a += b # 相当于:a = a + b
a *= a + 2 # 相当于:a = a * (a + 2)
print(a) # 算⼀下这⾥会输出什么
运算符的例⼦
例⼦1:华⽒温度转换为摄⽒温度。
提示:华⽒温度到摄⽒温度的转换公式为: C = (F - 32) / 1.8 。
"""
将华⽒温度转换为摄⽒温度
"""
f = float(input('请输⼊华⽒温度: '))
c = (f - 32) / 1.8
print('%.1f华⽒度 = %.1f摄⽒度' % (f, c))
说明:在使⽤ print 函数输出时,也可以对字符串内容进⾏格式化处理,上⾯ print 函数中的字 符串 %.1f 是⼀个占位符,稍后会由⼀个 float 类型的变量值替换掉它。同理,如果字符串中 有 %d ,后⾯可以⽤⼀个 int 类型的变量值替换掉它,⽽ %s 会被字符串的值替换掉。除了这种格 式化字符串的⽅式外,还可以⽤下⾯的⽅式来格式化字符串,其中 {f:.1f} 和 {c:.1f} 可以先看成是 {f} 和 {c} ,表示输出时会⽤变量 f 和变量 c 的值替换掉这两个占位符,后⾯的 :.1f 表示这 是⼀个浮点数,⼩数点后保留1位有效数字。
print(f'{f:.1f}华⽒度 = {c:.1f}摄⽒度')
例⼦2:输⼊圆的半径计算计算周⻓和⾯积。
"""
输⼊半径计算圆的周⻓和⾯积
"""
radius = float(input('请输⼊圆的半径: '))
perimeter = 2 * 3.1416 * radius
area = 3.1416 * radius * radius
print('周⻓: %.2f' % perimeter)
print('⾯积: %.2f' % area)
例⼦3:输⼊年份判断是不是闰年。
"""
输⼊年份 如果是闰年输出True 否则输出False
"""
year = int(input('请输⼊年份: '))
is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(is_leap)
说明:⽐较运算符会产⽣布尔值,⽽逻辑运算符 and 和 or 会对这些布尔值进⾏组合,最终也是得 到⼀个布尔值,闰年输出 True ,平年输出 False 。