is和==的区别

  • is用于检查两个对象是否指向内存中的相同地址,即它们是否是同一个对象。

  • 使用 == 运算符来比较两个对象的值是否相等

a = [1, 2, 3]
b = a # b和a指向同一个对象
c = [1, 2, 3] # c指向一个新的对象,虽然值相同但地址不同

print(a == b) # 输出 True,值相等
print(a is b) # 输出 True,同一个对象
print(a == c) # 输出 True,值相等
print(a is c) # 输出 False,不是同一个对象

注意:在 Python 中,整数和短字符串等不可变对象的内存地址会被缓存,所有值相同的不变量指向的内存地址相同。不变量包括: Number(数字)、String(字符串)、Tuple(元组)

tuple_1 = (1, 2, 3)
tuple_2 = (1, 2, 3)
num_1 = 1
num_2 = 1
str_1 = "hello"
str_2 = "hello"
print(tuple_1 is tuple_2) # True
print(num_1 is num_2) # True
print(str_1 is str_2) # True

type()和isinstance()的区别

  • type()不会认为子类是一种父类类型。

  • isinstance()会认为子类是一种父类类型。

class A:
pass


class B(A):
pass


print(isinstance(A(), A)) # True
print(type(A()) == A) # True

print(isinstance(B(), A)) # True,isinstance()认为子类是父类类型
print(type(B()) == A) # False,type不会认为子类是一种父类类型

注意: Python3中, bool是int的子类。Python2中是没有布尔型的,0表示False,用1表示True。

print(issubclass(bool, int))  # True

del

使用del可以删除单个或者多个对象

del var
del var_a, var_b

复数

复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型

+可以用来连接列表

list_1+list_2等价于list_1.extend(list_2)

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
list_1 = list_1 + list_2
print(list_1)

构建0个或1个元素的元组语法规则

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

集合的差集、并集和交集

a = {1, 2, 3}
b = {2, 3, 4}
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素

字典注意事项

键(key)必须使用不可变类型。

数据类型转换

  • eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象。

  • frozenset(s) 转换为不可变集合,因为集合中的元素需要是不可变的,当需要元素为集合时,需要先把集合转换为不可变集合。

  • chr(x) 将一个整数转换为一个字符,函数全称为character。

  • ord(x) 将一个字符转换为它的整数值,函数全称为ordinal sequence。

f-string

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

name = 'Tom'
print(f'{name}')
my_dict = {'name': 'Tom', 'age': 18}
print(f'{my_dict["name"]},{my_dict["age"]}')

列表

删除列表元素

  • del list[下标]

  • list.remove(值)

列表脚本操作符

["Hi"]*4等价于["Hi","Hi","Hi","Hi"]

while 循环使用 else 语句

如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

count = 0
while count < 5:
print(count, " 小于 5")
count = count + 1
else:
print(count, " 大于或等于 5")
输出
0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5

for…else

for…else 语句用于在循环结束后执行一段代码。

for x in range(6):
  print(x)
else:
  print("Finally finished!")
输出
0
1
2
3
4
5
Finally finished!

推导式

列表推导式