基础数据类型知识补充

编码解码:(用什么编,就用什么解)

  s.encode('utf-8') 编码
  s.decode('utf-8') 解码

s = 'alex'
  s1 = s.encode('utf-8')
  print(s1.decode('gbk')) 不能!不能!不能!

s = 'alex'
  s.encode('utf-8') 编码 utf-8包含了ASCII
  s.decode('gbk') 解码 gbk也包含了ASCII
应用场景:文件操作,网络传输,网络编程


基础数据补充:

列表不能循环添加,否则会变成死循环

li = [1,2]
li[1] = li
print(li)    结果是:[1,[...]]

for循环的计数,删除不干净

利用for循环删除列表内容:(不能用remove)
pop删除:

li = [1,2,3,4,5,6]
for i in range(len(li)):
    li.pop()
    print(li)

赋值删除:(偷换概念)

lst1 = [1,2,3,4,5,6]
lst2 = []
for i in lst1:
    lst2.append(i)
for n in lst2:
    lst1.remove(n)
print(lst1)            

for循环删除字典内容:(dic中的元素在迭代的过程中不允许进行删除)

dic = {'':'','':''}
lst = []
for i in dic:
    lst.append(i)        获取到的是字典的键
for n in lst:
    dic.pop(n)
print(dic)

fromkeys( ,''):
dic = {'jay':'jj'}
dic = dic.fromkeys(['jay','jj'],['周杰伦','麻花藤'])
print(dic)
  第一个位置是可迭代对象,也就是字典的键
  第二个位置 不写是None 也就是字典的值

深浅拷贝:
浅拷贝:
  只拷贝一层,元素是不可变的,就不会变;如果是可变数据,元素同时变;
li = [1,2,3,4]
lst = li(跟着变) 赋值

深拷贝: import copy(模块)
  不可变数据类型公用,可变数据类型重新开辟空间
  copy.deepcopy


is和 == 的区别:

is: 判断两边的内存地址是否一致; 是不是一个人

==: 判断两边的值是否相同 判断两人长得是不是一样


代码块:
一个文件,函数,模块,类,但cmd中一行就是一个代码块,是python中内置的,为了节省资源,提高效率

数 字: 范围 -5至256
字符串: 如果字符串相乘,总长度不能超过20

(代码块的级别高于小数据池,同一文件下,先执行代码块,再执行小数据池)

小数据池:

数据类型转换补充:

常用的数据类型:
  字符串,整型,布尔值,列表,元祖,字典,集合

类型转换:
  用一行代码实现;

字符串转列表:

s = '1111,2222,333,4444'
print(s.split(","))

列表转字符串:

lst = ['1','22','333']
print(''join(lst))

列表和元祖互转:

lst = ['1','22','333']
列表转元祖    print(tuple(['1','22','333']))
元祖转列表    print(list('1','22','333'))

在转换字典时,字典可以转成其他数据类型,但其它数据类型不能转换为字典

数据类型总结:

可变的数据类型: 列表,字典,集合
不可变的数据类型: 字符串,整型,布尔值,元祖

可迭代的数据类型: 字符串,列表,字典,元祖,集合
不可迭代的数据类型: 整型,布尔值

有序的数据类型: 列表,元祖,
无序的数据类型: 字典,集合

猜你喜欢

转载自www.cnblogs.com/py8318/p/10226546.html