Python中的运算符和条件循环语句

  • 上文Python数据类型详解01中主要介绍了Python中的一些常用的数据类型
  • 这篇文章主要介绍一些Python中的运算符

运算符

算术运算符

以下假设变量a为9,变量b为7:

运算符 描述 实例
  • | 加 - 两个对象相加 | a + b 输出结果 16
  • | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -2
  • | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 63
    / | 除 - x除以y | a / b 输出结果 1.2857142857142858
    % | 取模 - 返回除法的余数 | a % b 输出结果 2
    ** | 幂 - 返回x的y次幂 | 2**3, 输出结果 8
    // | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

比较运算符

以下假设变量a为10,变量b为20:

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

赋值运算符

以下假设变量a为10,变量b为20:

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 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

以上这三类基本和其他语言的运算符没什么区别, 也没有什么地方是需要敲黑板的, 下面介绍的僵尸Python中比较特殊的运算符了

位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

运算符 描述 实例
& 按位与运算符 (a & b) 输出结果 12 ,二进制解释: 0000 1100
^ 按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
<< 左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000

| 右移动运算符 | a >> 2 输出结果 15 ,二进制解释: 0000 1111

该运算符的运算方法是: 先将数字转成二进制, 再把二进制的每一位数字进行以上运算符运算, 最后再把结果转成十进制输出, 测试如下

1
2
3
4
5
6
7
8
9
10
11
12
13
# 5.位运算符
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0

# 运算和输出结果
c = a & b # 12 = 0000 1100
c = a | b # 61 = 0011 1101
c = a ^ b # 49 = 0011 0001
c = ~a # -61 = 1100 0011
c = a << 2 # 240 = 1111 0000
c = a >> 2 # 15 = 0000 1111

逻辑运算符

Python语言支持逻辑运算符,但是与其他语言(Swift)中的逻辑运算符(&, |, !)不同, 注意区别位运算符, 使用时不要用错了, 以下假设变量 a 为 10, b为 20:

运算符 描述 实例
and x and y 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 (a and b) 返回 20。
or x or y 布尔”或” - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值 (a or b) 返回 10。
not not x 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True not(a and b) 返回 False

成员运算符

Python支持成员运算符, 支持字符串,列表或元组

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x 在 y序列中 , 如果x在y序列中返回True。
not in 如果在指定的序列中没有找到值返回True,否则返回False x 不在 y序列中 , 如果x不在y序列中返回True。

测试示例:

1
2
3
4
5
6
7
8
9
10
# 成员运算符
list1 = [1, 2, 3, 4, 5, 6]

print(3 in list1) # True
print(10 in list1) # False
print(10 not in list1) # True


str1 = 'titanjun'
print('jun' in str1) # True

身份运算符

身份运算符用于比较两个对象的存储单元

运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~, +, - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
*, /, %, // 乘,除,取模和取整除
+, - 加法减法
>>, << 右移,左移运算符
& 位 ‘AND’
`^, `
<=, <, >, >= 比较运算符
<>, ==, != 等于运算符
=, %=, /=, //=, -=, +=, *=, **= 赋值运算符
is, is not 身份运算符
in, not in 成员运算符
not, or, and 逻辑运算符

条件和循环语句

  • Python程序语言指定任何非0和非空null值为true,0 或者 nullfalse
  • 由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现

if语句

  • if语句的使用和其他语言没什么区别, 主要是格式不一样, 没有大括号, 主要时注意缩进
1
2
3
4
5
6
if 判断条件:
执行语句……
elif 判断条件:
执行语句……
else
执行语句……

使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# if-else语句
if 2 > 3:
print('真的')
else:
print("假的")

# if-elif语句
a = 3
if (a == 1):
print(1)
elif (a == 2):
print(2)
else:
print(3)

While循环语句

与C语言中用法一样, 这里就不在赘述了

for 循环语句

Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。

1
2
3
4
5
6
7
8
9
# for循环
# 输出每一个字符
for s in "char":
print(s)

# 使用索引
list2 = [5, 2, 4]
for index in range(len(list2)):
print(list2[index])
  • 其中, 函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数, 这个后面会说到

  • python 中,for … else 表示for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

  • 对于Python语言, 我也是小白, 正在努力学习中, 文中如有不足之处, 还望多多指教

  • 测试代码详见 GitHub地址

  • 后期会持续更新相关文章