Python 变量与运算符 (2020最新)

Python 变量与运算符

  • 一、变量
      • 1.1 变量使用要求
      • 1.2 变量示例
  • 二、运算符
      • 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 中的注释包含

  1. 单行注释
  2. 多行注释
# 我是单行注释,单行注释使用 # 即可
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 比较运算符

操作符 名称 示例
> 大于 2 > 1
>= 大于等于 2 >= 4
< 小于 1 < 2
<= 小于等于 5 <= 2
== 等于 3 == 4
!= 不等于 3 != 5
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 取反
操作符 名称 示例
and (3 > 2) and (3 < 5)
or (1 > 3) or (9 < 2)
not not (2 > 1)
print((3>2) and (3<5)) # True
print((2<1) or (2>4)) # False
print(not (2>3)) # True

2.5 位运算符

操作符 名称 示例
~ 按位取反 ~4
& 按位与 4 & 5
| 按位或 4 | 5
^ 按位异或 4 ^ 5
<< 左移 4 << 2
>> 右移 4 >> 2
'''
    按位取反的操作是在原数字的基础加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
#     small = a
# else:
#     small = b

# 三元运算符
small = a if a<b else b

print(small)

2.7 其他运算符

操作符 名称 示例
in 存在 'A' in ['A', 'B', 'C']
not in 不存在 'h' not in ['A', 'B', 'C']
is "hello" is "hello"
not is 不是 "hello" is not "hello"
  • 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)

你可能感兴趣的:(Python学习,进阶,python)