Python 运算符
python中运算符分为五大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符(三元运算符)。
算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 取整除 |
% | 取余 |
** | 指数 |
运算实例
# + 注:(1+1) 是使1+1 作为一个整体,先进行运算,再进行格式化输出
print("1+1 = %d" % (1 + 1))
# -
print("1-1 = %d" % (1 - 1))
# * 注: 计算机中的乘用 *(星号) 代替,不是 x(字母)
print("1*1 = %d" % (1 * 1))
# / 注: 计算机中的除用 /(斜杠) 代替
print("1/1 = %s" % (1 / 1)) # 使用%s 占位只是为了显示小数位
print("10/3 = %s" % (10 / 3)) # 使用%s 占位只是为了显示小数位
# //
print("10//4 = %s" % (10 // 4)) # 使用%s 占位只是为了显示小数位
# **
print("2**10 = %d" % (2 ** 10))
# 运算结果
# 1+1 = 2
# 1-1 = 0
# 1*1 = 1
# 1/1 = 1.0
# 10/3 = 3.3333333333333335
# 10//4 = 2
# 2**10 = 1024
由以上结果可知
- Python中除法默认转型成float 且默认保留一位小数
- 整除// : 是地板除, 既向下取整,
- 如果商不为整数, 则 结果为 商-1 - 商之间的整数
- 比如 10/4 的商为2.5 , 不是整数, 2.5 -1 到 2.5 之间的整数为2 ,所以 10 // 4 = 2 .
- 妙用: 在某些情况下可以利用整除的特性, 忽略奇偶性的判断
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 把 = 号右边的结果 赋给 左边的变量, 如 num = 1 + 2 * 3,结果num的值为7 |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
注:
- 如果 = 右边是一个表达式, 会先计算右边, 得到的结果赋值给左边
- 例: A= 5 ,A += 3+5 , A 最终等于13.
比较运算符
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等, 如果是则条件为真。 |
如a=3,b=3,则(a == b) 为 True |
!= | 检查两个操作数的值是否相等, 如果值不相等,则条件为真。 |
如a=1,b=3,则(a != b) 为 True |
> | 检查左操作数的值是否大于右操作数的值, 如果是,则条件为真。 |
如a=7,b=3,则(a > b) 为 True |
< | 检查左操作数的值是否小于右操作数的值, 如果是,则条件为真。 |
如a=7,b=3,则(a < b) 为 False |
>= | 检查左操作数的值是否大于或等于右操作数的值, 如果是,则条件为真。 |
如a=3,b=3,则(a >= b) 为 True |
<= | 检查左操作数的值是否小于或等于右操作数的值, 如果是,则条件为真。 |
如a=3,b=3,则(a <= b) 为 True |
注:
- 如果左右两边有表达式, 则先计算表达式再比较, 例如: 7+7 > 5+5 , 先计算 7+7 与 5+5 ,然后用两者的结果进行比较 14 > 10 , 结果为true
逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与": 如果 x 为 False,x and y 返回 False, 否则它返回 y 的值。 |
True and False, 返回 False。 |
or | x or y | 布尔"或": 如果 x 是 True,它返回 True, 否则它返回 y 的值。 |
False or True, 返回 True。 |
not | not x | 布尔"非": 如果 x 为 True,返回 False 。 如果 x 为 False,它返回 True。 |
not True 返回 False, not False 返回 True |
扩展[1]
| 运算符 |逻辑表达式 |描述
|---|---|
|&| 0 & 1 |位运算符: 位与
|||0 | 1 |位运算符: 位或
||1 |取反
|^|0 ^ 1 |异或
|>>|4>>1 |右移运算符
|<<|1<<2 |左移运算符
注:
- 左移一位 <==> 乘以2, 既2*2 等价于 2<<1
- 右移一位 <==> 除以2, 既2/2 等价于 2>>1
- 左移右移效率要高于乘除
- 加的效率高于减的效率
数字的逻辑运算
a = 0
b = 1
c = 3
# and 运算,只要有一个值为 0 则结果为0,否则结果为最后一个非 0 数字
a and b # 0
b and a # 0
c and b # 1
b and c # 3
# or 运算,只有所有值为 0 结果才为0,否则结果为第一个非 0 数字
a or a # 0
a or b # 1
b or a # 1
c or b # 3
b or c # 1
条件运算符(三元运算符)
格式
变量 = 值1 if 条件 else 值2
a = 10
b = 20
c = a if a>b else b
print(c) # 条件不成立,把 b 的值赋给 c,也就是 c 的值为 20
数据类型转换
程序的三种结构
程序的三种结构分别是 顺序结构、选择结构 和 循环结构。
顺序结构
如同名字一样,程序中的代码按照自上而下执行的排列顺序依次执行 ,则称为顺序执行,或顺序结构。
选择结构
程序按照某个条件选择其中一个分支进行执行,称为分支结构,或选择结构。
if判断语句
if 条件语句:
成立则执行的语句
age =30
if age >= 18:
print("我已经成年了")
if-else 判断语句
if 条件语句:
条件成立,执行的语句
else:
条件不成立,执行的语句
age =30
if age >= 18:
print("成年了")
else:
print("未成年")
if-elif 判断语句
if 条件语句:
条件成立,执行的语句
elif 条件语句2:
条件语句2成立,执行的语句
else:
条件都不成立,执行的语句
age =30
if age >= 30:
print("中年人")
elif age >= 18:
print("成年人")
else:
print("未成年")
if嵌套的格式
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
就像 if 语句 可以嵌套一样,if、if-else、if-elif 三者之间可以根据需求相互嵌套使用
Python中 if 特殊用法
区间比较
a = 10
1<a<20 # True
11<a<20 # False
循环语句
while 循环
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
需要注意 变量在循环外赋值 与 变量再循环内赋值的区别,如下图:
- 在循环外的变量随着循环一直累加,
- 在循环内的变量,每当一次新的循环开始,都被重新赋值
while 循环的嵌套
有这么一个游戏,有一个立柜,立柜的每一个格子放着一个套娃。只有顶层的套娃可以操作。
只有把顶层的套娃取到最小的那一个,
下一层的套娃自动上升到顶层
如此往复,直到立柜中的所有套娃都取出为止,如图
如上所述的游戏过程,
- 列游戏开始,立柜把格子上升到顶层。(外层while 开始执行(外循环))
- 这时顶层的套娃可以操作,把套娃一个一个取出。(内层while开始执行(内循环))
- 当顶层的套娃完全取出(内循环结束),下一层自动上升到顶层。(外循环继续执行)
- 如2一样,这时顶层的套娃可以操作,把套娃一个一个取出(内循环继续执行)。
- 当所有套娃全部取出,游戏结束(当内循环结束,并且 外循环也结束,整个循环结束)
for 循环
for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码
Python 中的 for 循环 类似于Java 中的 foreach。
name = 'xiaoming'
for x in name:
print(x)
结果如下
x
i
a
o
m
i
n
g
break和continue
break 打断循环,如果在多层嵌套循环当中,打断本层循环,不影响其他循环的执行。
name = 'xiao'
for x in name:
if x == "a"
break
print(x)
结果如下:
x
i
continue 打断本次循环,跳转到条件判断的地方继续执行
name = 'xiao'
for x in name:
if x == "a"
continue
print(x)
结果如下:
x
i
o
到此结 DragonFangQy 2018.4.2