一、上节课的重点回顾:
1、类名加括号其实就是执行类的__init__方法:
2、int
a.创建方式
n1 = 123 #根据int类创建了一个对象
n2 = int(123) #根据int类创建一个对象,类的实例化就是对象
b.int内部优化
1、n1和n2的内存地址相同
n1 = 123
n2 = n1
2、按理说n1和n2的内存地址应该不同,这是由于python的内部机制的原因,
在-5~257以内的数,按2的方式写,都是指向同一个内存
n1 = 123
n2 = 123
除此之外的数,n1和n2的内存地址是不同的,但是python源码可以改取值范围
n1 = 123123
n2 = 123123
3、id查看对象的内存地址
n1 = 123
i1 = id(n1)
name = "李露"
for i in name:
print(i) #循环打印每个汉字而不是字节
bytes_list = bytes(i, encoding='utf-8') #将汉字转成字节,编码是utf-8
print(bytes_list)
for b in bytes_list:
hex 可以 十进制转16进制 二进制转16进制 结果都是字符串>>>hex(0b10)'0x2'
>>> hex(10)'0xa'bin 可以十进制转2进制 16进制转2进制 结果都是字符串>>> bin(10)'0b1010'
>>> bin(0x2)'0b10’
int 可以16进制转换十进制 2进制转换十进制>>> int(0xe)14
>>>int(0b100)4
python进制转换
fromkeys(seq,value=None) 解释:
默认不写value的话,所有的值为None
n = dict.fromkeys(['k1', 'k2'], []) #默认逗号后面不给的话,key对应的value都是None
n['k1'].append(2) #我们修改逗号后面的空列表元素 打印 所有key的value也会修改
print(n)
n['k1'] = 3 # 而单独修改key的value的话,只有 这个key的value改了,而其他的key对应的value都不变
print(n)
n = dict.fromkeys() #默认逗号后面不给的话,key对应的value都是None
print(n)
二、集合set:集合是一个无序且不重复的元素集合
s1={1,2,3,1} #定义一个set s1 如果s1={}为空则默认定义一个字典
s2=set([2,5,6]) #定义一个set s2
print(s1) #s1={1,2,3} 自动去除重复的元素
s1.add(5) #s1={1,2,3,5} 添加一个元素
print(s1)
s3=s1.difference(s2) #返回一个s1中存在而不存在于s2的字典s3,s3={1,3},而s1并没有改变
print(s3)
s1.difference_update(s2) #s1跟新成上面的s3 s1={1,3}
s1.discard(1) #删除元素1,不存在的话不报错 s1={3}
print(s1)
s1.remove(3) #删除元素3,不存在的话报错 s1={}
print(s1)
s1.update([11,2,3]) #跟新s1中的元素,其实是添加 s1={11,2,3}
print(s1)
k=s1.pop() #删除一个元素,并将删除的元素返回给一个变量,无序的,所以并不知道删除谁
s1={1,2,3,4} #这里重新定义了集合s1,s2
s2={3,4,5,6}
r1=s1.intersection(s2) #取交集,并将结果返回给一个新的集合 r1={3,4}
print(r1)
print(s1)
s1.intersection_update(s2) #取交集,并将s1更新为取交集后的结果 s1={3,4}
print(s1)
k1=s1.issubset(s2) #s1是否是s2的的子序列是的话返回True,否则False 这里k1=true
print(k1)
k2=s1.issuperset(s2) #s1是否是s2的父序列 k2=False
k3=s2.isdisjoint(s1) #s1,s2,是否有交集,有的话返回False,没有的话返回True
print(k3)
s1.update([1,2]) #s1={1,2,3,4}
r3=s1.union(s2) #取并集将结果返回给r3 r3={1,2,3,4,5,6}
print(r3)
r2=s1.symmetric_difference(s2) #r2=s1并s2-s1交s2 r2={1,2,5,6}
print(r2)
s1.symmetric_difference_update(s2) #s1更新为 s1并s2 - s1交s2 s1={1,2,5,6}
print(s1)
classset(object):"""set() -> new empty set object
set(iterable) -> new set object
Build an unordered collection of unique elements."""
def add(self, *args, **kwargs): #real signature unknown
"""Add an element to a set,添加元素
This has no effect if the element is already present."""
pass
def clear(self, *args, **kwargs): #real signature unknown
"""Remove all elements from this set. 清楚内容"""
pass
def copy(self, *args, **kwargs): #real signature unknown
"""Return a shallow copy of a set. 浅拷贝"""
pass
def difference(self, *args, **kwargs): #real signature unknown
"""Return the difference of two or more sets as a new set. A中存在,B中不存在
(i.e. all elements that are in this set but not the others.)"""
pass
def difference_update(self, *args, **kwargs): #real signature unknown
"""Remove all elements of another set from this set. 从当前集合中删