'''
小数据池:
int -5~256
str 特殊字符,*数字20以内
ascii : 8位 1字节 表示1个字符
unicode 32位 4个字节 表示一个字符
utf- 8 1个英文 8位,1个字节
欧洲 16位 两个字节 表示一个字符
亚洲 24位 三个字节 表示一个字符
gbk 1个英文 8位,1个字节
亚洲 16位 两个字节 表示一个字符
在循环一个列表huo 字典时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错
# for i in range(len(lis)):
# print(i) # i = 0 i = 1 i = 2
# del lis[i]
# print(lis) # [11,22,33,44,55] [22, 44, 55] [22, 44]
删除一个对应索引变化,到后面会报错
dic={'k1':'v1','k2':'v2','k3':'v3'}
for i in dic1
if 'k' in dic:
除了数字为0,其它数据类型为空时转换为bool值时都为false
元祖,字典,字符串只有一个元素,且不加,,那此元素是什么类型就是什么类型
#tu1 = (1)
# tu2 = (1,)
# print(tu1,type(tu1)) 1
# print(tu2,type(tu2)) (1,)
# tu1 = ([1])
# tu2 = ([1],)
# print(tu1,type(tu1))
# print(tu2,type(tu2))
#元祖,字典,字符串只有一个元素,且不加,,那此元素是什么类型就是什么类型
#集合:可变的数据类型,他 里面的元素 必须是不可变的数据类型,无序,不重复。
#集合的增删改查
set1 = set({1,2,'barry'})
set2 = {1,2,'barry'}
print(set1,set2) # {1, 2, 'barry'} {1, 2, 'barry'}
set1 = {'alex','wusir','ritian','egon','barry',}
set1.add(0)
print(set1)
set1.add('233')
print(set1)
s = '是'
print(s.isspace()) #为空格?
#增
set1 = {'alex','wusir','ritian','egon','barry'}
set1.add('景女神')
print(set1)
set1.update('A')
print(set1)
set1.update('老师')
print(set1)
set1.update([1,2,3]) #用update时回拆分为最小单位添加,。add则会整体添加
print(set1)
#删
set1 = {'alex','wusir','ritian','egon','barry'}
set1.remove('alex')
print(set1)
set1.pop()
set1.clear()
del set1
print(set1)
#集合操作
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)
print(set1.intersection(set2)) #交集 元素在一和二中共有的
print(set1 | set2)
print(set1.union(set2)) #并集 元素或者在1或者在二的
print(set1-set2)
print(set1.difference(set2)) #差集 1中有2中没有的,1与2的不同之处
print(set1 ^ set2)
print(set1.symmetric_difference(set2)) #反交集 不相交的部分
#4.5子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
print(set2 > set1)
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
#深浅copy 。id 显示内存地址 ???????????????????????????????????
l1 = [1, 2, 3, ['barry', 'alex']]
#对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
l2 = l1.copy()
print(l1, id(l1)) # [1, 2, 3, ['barry', 'alex']] 2380296895816
print(l2, id(l2)) # [1, 2, 3, ['barry', 'alex']] 2380296895048
l1[1] = 222
print(l1, id(l1)) # [1, 222, 3, ['barry', 'alex']] 2593038941128
print(l2, id(l2)) # [1, 2, 3, ['barry', 'alex']] 2593038941896
l1[3][0] = 'wusir'
print(l1, id(l1[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016
print(l2, id(l2[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016
#对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
import copy
l1 = [1,2,3,['barry','alex']]
l2 = copy.deepcopy(l1)
print(l1,id(l1)) # [1, 2, 3, ['barry', 'alex']] 2915377167816
print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2915377167048
l1[1] = 222
print(l1,id(l1)) # [1, 222, 3, ['barry', 'alex']] 2915377167816
print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2915377167048
l1[3][0] = 'wusir'
print(l1,id(l1[3])) # [1, 222, 3, ['wusir', 'alex']] 2915377167240
print(l2,id(l2[3])) # [1, 2, 3, ['barry', 'alex']] 2915377167304
'''
'''
f=open('ddd.txt',mode='rb')
content=f.read()
print(content,type(content ))
f.close()
#文件以什么方式储存的,应该以什么模式打开
f = open('模特主妇护士班主任',mode='rb',)
content = f.read()
print(content)
f.close()
#清除所有之后写入,在没有文件时新建文件
f = open('log',mode='wb') #mode='wb'时不可encode为utf-8 binary mode doesn't take an encoding argument
f.write('qingbing bubing'.encode('gbk'))
f.close()
f=open('模特主妇护士班主任',mode='a')
f.write('jdaiosudjkla')
f.close()
f=open('log',mode='r+',encoding='utf-8')
print(f.read())
f.write('o(* ̄︶ ̄*)o')
print(f.read())
f.close()
#在r模式下先写再读只会显示出没有写的部分
f = open('log',mode='r+',encoding='utf-8')
f.write('aaa')
print(f.read())
f.close()
#r+b模式下,读取时用byte模式,则读取时不用encode,
f = open('log',mode='r+b') #带b一般不用,一般用r+
print(f.read())
f.write('sjda3241'.encode('utf-8')) #写的时候需要设置写入的二进制编码格式
f.close()
#w+
f = open('log',mode='w+',encoding='utf-8') #无输出,有w就清除后写
f.write('aaa')
print(f.read())
f.close()
'''
#a+
f = open('log',mode='a+',encoding='utf-8') #写完之后光标到了最后。想看全貌时需将光标调回0位置,f.seek(0)
f.write('sichuan')
f.seek(0)
print(f.read())
f.close()
#功能详解
转载于:https://www.cnblogs.com/shori/p/9487546.html