原文博客地址: Python 中的运算符和条件循环语句 https://www.titanjun.top/2018/04/14/Python中的运算符和条件循环语句/
上文 Python 数据类型详解 01 https://www.titanjun.top/2018/04/10/Python数据类型详解01/ 中主要介绍了 Python 中的一些常用的数据类型
这篇文章主要介绍一些 Python 中的运算符
运算符
1. 算术运算符
以下假设变量 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 |
2. 比较运算符
以下假设变量 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。 |
3. 赋值运算符
以下假设变量 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 中比较特殊的运算符了
4. 位运算符
按位运算符是把数字看作二进制来进行计算的. Python 中的按位运算法则如下:
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
该运算符的运算方法是: 先将数字转成二进制, 再把二进制的每一位数字进行以上运算符运算, 最后再把结果转成十进制输出, 测试如下
- # 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
5. 逻辑运算符
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 |
6. 成员运算符
Python 支持成员运算符, 支持字符串, 列表或元组
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
测试示例:
- # 成员运算符
- 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
7. 身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
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 |
8. Python 运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~, +, - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
*, /, %, // | 乘,除,取模和取整除 |
+, - | 加法减法 |
>>, << | 右移,左移运算符 |
& | 位'AND' |
^, | | 位运算符 |
<=, <, >, >= | 比较运算符 |
<>, ==, != | 等于运算符 |
=, %=, /=, //=, -=, +=, *=, **= | 赋值运算符 |
is, is not | 身份运算符 |
in, not in | 成员运算符 |
not, or, and | 逻辑运算符 |
二. 条件和循环语句
Python 程序语言指定任何非 0 和非空 null 值为 true,0 或者 null 为 false
由于 python 并不支持 switch 语句, 所以多个条件判断, 只能用 elif 来实现
1. if 语句
if 语句的使用和其他语言没什么区别, 主要是格式不一样, 没有大括号, 主要时注意缩进
if 判断条件:
执行语句......
elif 判断条件:
执行语句......
else:
执行语句......
使用示例:
- # 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)
2. While 循环语句
与 C 语言中用法一样, 这里就不在赘述了
3. for 循环语句
Python 中 for 循环可以遍历任何序列的项目, 如一个列表或者一个字符串.
- # 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 地址 https://github.com/CoderTitan/PythonDemo
来源: https://juejin.im/post/5ad5b8d95188255570068452