Python 变量与运算符
- 一、变量
- 二、运算符
- 2.1 注释
- 2.2 算数运算符
- 2.3 比较运算符
- 2.4 逻辑运算符
- 2.5 位运算符
- 2.6 三元运算符
- 2.7 其他运算符
- 2.8 运算符优先级
抽时间把之前写的不好的一篇文章改成使用 markdown 语法重新梳理一下, 简单粗暴梳理
学习链接:适用于喜欢看文档学习的童鞋
一、变量
1.1 变量使用要求
- 使用变量之前需要赋值
- 变量名可以包括字母、数字、下划线、但变量名称不能以数字开头
- Ptrhon 变量是大小写敏感的
1.2 变量示例
a = "123"
print(a) # 123
b = 2
c = 3
a = b + c
print(a) # 5
二、运算符
2.1 注释
很多语言都支持注释,Python 也不例外
Python 中的注释包含
- 单行注释
- 多行注释
# 我是单行注释,单行注释使用 # 即可
print("Hello World")
# Hello World
Python 中多行注释
‘’’ ‘’’ or “”" “”"
'''
我是多行注释
'''
"""
我是多行注释
"""
2.2 算数运算符
操作符 | 名称 | 示例 |
+ | 加 | 1+1 |
- | 减 | 3-4 |
* | 乘 | 4*5 |
/ | 除 | 9/3 |
// | 整除 | 3//4 (不保留小数点) |
% | 取余 | 3%4 |
** | 幂 | 2**3 (2的三次幂) |
print(1+1)
print(3-2)
print(4*5)
print(3/4)
print(3//4)
print(4%3)
print(5**3)
# 2
# 1
# 20
# 0.75
# 0
# 1
# 125
2.3 比较运算符
操作符 | 名称 | 示例 |
| 大于 | |
| 大于等于 | |
| 小于 | |
| 小于等于 | |
| 等于 | |
| 不等于 | |
print(2 > 1) # True
print(2 >= 4) # False
print(1 < 2) # True
print(5 <= 2) # False
print(3 == 4) # False
print(3 != 5) # True
2.4 逻辑运算符
- and 同真与为真
- or 同假或为假
- not 取反
操作符 | 名称 | 示例 |
| 与 | |
| 或 | |
| 非 | |
print((3>2) and (3<5)) # True
print((2<1) or (2>4)) # False
print(not (2>3)) # True
2.5 位运算符
操作符 | 名称 | 示例 |
| 按位取反 | |
| 按位与 | |
| 按位或 | |
| 按位异或 | |
| 左移 | |
| 右移 | |
'''
按位取反的操作是在原数字的基础加1,然后取反
比如 4 -> 5 再去取反 得到 -5
比如 -4 -> -3 再去取反 得到 3
'''
a = 4
b = 5
print(bin(a),bin(b)) # 0b100 0b101
print(bin(~a),~a) # -0b101 -5
print(~4,~(-4)) # -5 3
'''
按位与:
将数字转换为 二进制,然后每一位进行对比,只有同为 1 的时候,当前位置的值不会变化
'''
a = 4
b = 5
print(bin(a),bin(b)) # 0b100 0b101 => 0b100
print(a&b) # 4
'''
按位或 |
和按位与相反,只有不同的时候,数字才保留
'''
a = 7
b = 3
print(bin(a),bin(b)) # 0b111 0b11 => 0b100
print(a|b) # 7
'''
按位异或 ^
只有 相同位置对应的不一样,结果才为 1
'''
a = 6
b = 3
print(bin(a),bin(b)) # 0b110 0b11
print(a^b) # 5
a^=b
b^=a
a^=b
print(a,b) # 3 6
'''
移位:对二进制操作
<<
>>
'''
a = 3
print(a<<1) # 3 * 2 = 6
print(a<<2) # 3 * (2**2) = 3 * 4 = 12
print(a<<3) # 3 * (2**3) = 3 * 8 = 24
b = 8
print(8>>1) # 8/2 = 4
print(8>>2) # 8/(2**2) = 2
print(8>>3) # 8/(2**3) = 1
2.6 三元运算符
Python 中的三元运算符有一点点不一样哦
a = 123
b = 321
# if a<b:
# small = a
# else:
# small = b
# 三元运算符
small = a if a<b else b
print(small)
2.7 其他运算符
操作符 | 名称 | 示例 |
| 存在 | |
| 不存在 | |
| 是 | |
| 不是 | |
- in 、not in 的使用
words = ['A','B','C']
if 'A' in words:
print('A' + ' exists')
if 'D' not in words:
print('D'+ ' exists')
A exists
D exists
- is、not is 的使用
比较两个变量均指向不可变类型
a = "hello"
b = "hello"
print(a is b, a == b) # True True
print(a is not b, a != b) # False False
比较两个变量指向可变类型
a = ["hello"]
b = ["hello"]
print(a is b, a == b) # False True
print(a is not b, a != b) # True False
解答
- is,is not 对比两个变量的内存地址
- ==, != 对比的是两个白那辆的值
- 对比两个变量,指向的都是地址不可变类型(str 等),那么is,is not 和 ==,!= 是完全等价的
- 对比的两个变量,指向的是地址可变类型(list,dict,tuple等),则两者是有区别的。
2.8 运算符优先级
- 一元运算符优于二元运算符,例如
2** -3
等价于 3 ** (-2)
- 先算数运算,后移位运算符,最后位运算,例如
1<<3 + 2&7
等价于 1<<(3+2))&7
- 逻辑运算符后结合,例如
3<4 and 4<5
等价于 (3<4) and (4<5)