模块sys和os

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5.  
  6. sys.path #打印环境变量
  7. print(sys.argv)
  8.  
  9. #输出
  10. $ python test.py helo world
  11. ['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了
  12.  
  13. ===============================
  14. #!/usr/bin/env python
  15. # -*- coding: utf-8 -*-
  16.  
  17. import os
  18.  
  19. os.system("df -h") #调用系统命令
  20. ===============================
  21. import os,sys
  22.  
  23. os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行

我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

  1. a = [1,2,3,4]
  2. ys_i = type(a) is list #身份运算
  3. print(ys_i)

一个二进制(bit)
8bit= 1byte(字节)

位运算:

  1. #!/usr/bin/python
  2.  
  3. a = 60 # 60 = 0011 1100
  4. b = 13 # 13 = 0000 1101
  5. c = 0
  6.  
  7. c = a & b; # 12 = 0000 1100
  8. print "Line 1 - Value of c is ", c
  9.  
  10. c = a | b; # 61 = 0011 1101
  11. print "Line 2 - Value of c is ", c
  12.  
  13. c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1
  14. print "Line 3 - Value of c is ", c
  15.  
  16. c = ~a; # -61 = 1100 0011
  17. print "Line 4 - Value of c is ", c
  18.  
  19. c = a << 2; # 240 = 1111 0000
  20. print "Line 5 - Value of c is ", c
  21.  
  22. c = a >> 2; # 15 = 0000 1111
  23. print "Line 6 - Value of c is ", c

列表操作:

  1. #切片
  2. name = ['zk','syf','cx',['kc','lo'],'tb']
  3. print(name[0]) #第一个zk
  4. print(name[-1]) #倒数第一个tb
  5. print(name[-2:]) #['cx', 'tb']
  6. print(name[:2]) #['zk', 'syf']
  7. name.append('kp') #最后插入
  8. print(name)
  9. name.insert(3,'kp') #要插入哪里就写几
  10. name[1] = 'xd' #修改
  11. name.remove('cx') #删除
  12. del name[4] #删除
  13. name.pop() #默认删除最后一个,写参数就删除对应位置的
  14. print(name.index('zk')) #找到对应的位置
  15. print(name[name.index('zk')])
  16. name.clear() #清空
  17. print(name.count('kp')) #统计数量
  18. name.reverse() #翻转
  19. name.sort() #排序
  20. print(name[0:-1:2]) #步长为2的切片
  21. print(name[:-1:2])
  22. name2 = ['','','']
  23. name.extend(name2) #合并

取多个元素

  1. >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
  2. >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4
  3. ['Tenglan', 'Eric', 'Rain']
  4. >>> names[1:-1] #取下标1至-1的值,不包括-1
  5. ['Tenglan', 'Eric', 'Rain', 'Tom']
  6. >>> names[0:3]
  7. ['Alex', 'Tenglan', 'Eric']
  8. >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
  9. ['Alex', 'Tenglan', 'Eric']
  10. >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
  11. ['Rain', 'Tom', 'Amy']
  12. >>> names[3:-1] #这样-1就不会被包含了
  13. ['Rain', 'Tom']
  14. >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
  15. ['Alex', 'Eric', 'Tom']
  16. >>> names[::2] #和上句效果一样
  17. ['Alex', 'Eric', 'Tom']

追加

  1. >>> names
  2. ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
  3. >>> names.append("我是新来的")
  4. >>> names
  5. ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

插入

  1. >>> names
  2. ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
  3. >>> names.insert(2,"强行从Eric前面插入")
  4. >>> names
  5. ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
  6.  
  7. >>> names.insert(5,"从eric后面插入试试新姿势")
  8. >>> names
  9. ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

修改

  1. >>> names
  2. ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
  3. >>> names[2] = "该换人了"
  4. >>> names
  5. ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

删除

  1. >>> del names[2]
  2. >>> names
  3. ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
  4. >>> del names[4]
  5. >>> names
  6. ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
  7. >>>
  8. >>> names.remove("Eric") #删除指定元素
  9. >>> names
  10. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
  11. >>> names.pop() #删除列表最后一个值
  12. '我是新来的'
  13. >>> names
  14. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']

扩展

  1. >>> names
  2. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
  3. >>> b = [1,2,3]
  4. >>> names.extend(b)
  5. >>> names
  6. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

拷贝

  1. >>> names
  2. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
  3.  
  4. >>> name_copy = names.copy()
  5. >>> name_copy
  6. ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

统计

  1. >>> names
  2. ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
  3. >>> names.count("Amy")
  4. 2

顺序翻转

  1. >>> names
  2. ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
  3. >>> names.sort() #排序
  4. Traceback (most recent call last):
  5. File "<stdin>", line 1, in <module>
  6. TypeError: unorderable types: int() < str() #3.0里不同数据类型不能放在一起排序了,擦
  7. >>> names[-3] = ''
  8. >>> names[-2] = ''
  9. >>> names[-1] = ''
  10. >>> names
  11. ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '', '', '']
  12. >>> names.sort()
  13. >>> names
  14. ['', '', '', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
  15.  
  16. >>> names.reverse() #反转
  17. >>> names
  18. ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '', '', '']

获取下标

  1. >>> names
  2. ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '', '', '']
  3. >>> names.index("Amy")
  4. 2 #只返回找到的第一个下标

浅copy和深copy

  1. name = ['zk','syf','cx',['kc','lo'],'tb']
  2. print('name=',name)
  3. name3 = name.copy() #复制 浅
  4. name[1] = 'zz'
  5. name[3][1] ='syf'
  6. print('-----------')
  7. print('name=',name)
  8. print('name3=',name3)
  9. import copy
  10. name4 = copy.deepcopy(name) #深copy
  11. print('-----------')
  12. print('name=',name)
  13. name[3][0] = 'zk'
  14. name[4] = 'zz'
  15. print('name4=',name4)
  16. print('name=',name)
  17.  
  18. name= ['zk', 'syf', 'cx', ['kc', 'lo'], 'tb', '', '', '']
  19. -----------
  20. name= ['zk', 'zz', 'cx', ['kc', 'syf'], 'tb', '', '', '']
  21. name3= ['zk', 'syf', 'cx', ['kc', 'syf'], 'tb', '', '', '']
  22. -----------
  23. name= ['zk', 'zz', 'cx', ['kc', 'syf'], 'tb', '', '', '']
  24. name4= ['zk', 'zz', 'cx', ['kc', 'syf'], 'tb', '', '', '']
  25. name= ['zk', 'zz', 'cx', ['zk', 'syf'], 'zz', '', '', '']

字符串操作

  1. name = 'my \tname is {name} and i am {year} old'
  2.  
  3. print(name.capitalize()) #首字母大写
  4. print(name.count("k")) #统计计数
  5. print(name.center(50,'=')) #补齐,并居中
  6. print(name.endswith("o0")) #判断以什么结尾
  7. print(name.expandtabs(tabsize=30)) #\t 转换为多少个空格
  8. print(name.find("name")) #找位置
  9. print(name[name.find("name"):]) #找位置切片
  10. print(name.format(name='kiko0o0',year = '')) #参数录入
  11. name1 = name.format(name='kiko0o0',year = '')
  12. print(name1.center(50,"-"))
  13. print(name.format_map({'name':'kiko0o0','year':''})) #参数录入
  14. print(name.index("and")) #查找字符串所在位置,如果不包含就报错,包含就打印位置
  15. print('123qw'.isalnum()) #包含数字和字母返回true 如果包含特殊字符返回 false
  16. print('adsf'.isalpha()) #纯英文字符返回true
  17. print(''.isdecimal()) #判断是否为十进制
  18. print(''.isdigit()) #判断是否为整数
  19. print('a'.isidentifier()) #判断是不是一个合法的变量名
  20. print(name.isnumeric()) #判断是不是一个只有数字
  21. print(' '.isspace()) #判断是不是空格
  22. print('My Name Is'.istitle()) #判断是不是首字母大写
  23. print('zk'.isprintable()) #判断是不是可以打印的,tty设备终端等就返回false
  24. print('ZHAOKAI'.isupper()) #是否全部为大写
  25. print('+'.join(['','',''])) #字符串链接
  26. print(name.ljust(50,'*')) #长度多少 剩余的补充
  27. print(name.rjust(50,'*')) #同上 只是反向
  28. print('KkKiIu'.lower()) #大写变小写
  29. print('KkKiIu'.upper()) #小写变大写
  30. print('\nKiKko0'.lstrip()) #去除左边的空格和回车
  31. print('-----')
  32. print('\nKiKko0\n'.rstrip()) #去除右边的空格和回车
  33. print('\nKiKko0\n'.strip()) #去除左右的空格和回车
  34. p = str.maketrans("kjhgzx","") #类似加密一定要保证左右数据一样多
  35. print("kiko0o0 zk".translate(p)) #返回翻译后的字符串
  36. print('kiko0o0'.replace('k','a',1)) #替换后面是替换的数量,不写默认替换全部
  37. print('kiko0o0'.rfind('o')) #找到的最后边的数值的下标返回
  38. print('1+2+3+4+5'.split('+')) #以什么为分隔符分成列表
  39. print('1\n2\n3\n4\n'.splitlines()) #以换行\n为分隔符生成列表
  40. print('kikIRUo0o0o'.swapcase()) #大写转换小写,小写转换大写
  41. print('my name is kik'.title()) #第一个字母变大写
  42. print('kik o0o0'.zfill(50)) #不够用0补充
  1. My name is {name} and i am {year} old
  2. 0
  3. ======my name is {name} and i am {year} old======
  4. False
  5. my name is {name} and i am {year} old
  6. 4
  7. name is {name} and i am {year} old
  8. my name is kiko0o0 and i am 20 old
  9. -------my name is kiko0o0 and i am 20 old--------
  10. my name is kiko0o0 and i am 20 old
  11. 19
  12. True
  13. True
  14. True
  15. True
  16. True
  17. False
  18. True
  19. True
  20. True
  21. True
  22. 1+2+3
  23. my name is {name} and i am {year} old************
  24. ************my name is {name} and i am {year} old
  25. kkkiiu
  26. KKKIIU
  27. KiKko0
  28. -----
  29.  
  30. KiKko0
  31. KiKko0
  32. 1i1o0o0 51
  33. aiko0o0
  34. 5
  35. ['', '', '', '', '']
  36. ['', '', '', '']
  37. KIKiruO0O0O
  38. My Name Is Kik
  39. 000000000000000000000000000000000000000000kik o0o0

字典使用

  1. av_catalog = {
  2. "欧美":{
  3. "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
  4. "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
  5. "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
  6. "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
  7. },
  8. "日韩":{
  9. "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
  10. },
  11. "大陆":{
  12. "":["全部免费,真好,好人一生平安","服务器在国外,慢"]
  13. }
  14. }
  15.  
  16. info = {
  17. 'stu1101':'TengLan Wu',
  18. 'stu1102':'LongZe LuoLa',
  19. 'stu1103':'XiaoZe MaLiYa',
  20. }
  21. print(info['stu1101']) #查询,但是如果不存在就返回异常了
  22. info['stu1101'] = 'WuTeng Lan' #修改
  23. print(info)
  24. info['stu1104'] = 'Cang Jingkong' #添加
  25. print(info)
  26. # del info['stu1101'] #删除
  27. # print(info)
  28. # info.pop("stu1102") #删除
  29. # print(info)
  30. # info.popitem() #随机删除
  31. # print(info)
  32. print(info.get('stu1105')) #用这个查询最友好,有就返回,没有就返回None
  33. print('stu1101' in info) #判断是否存在,不存在返回false,存在返回true(python3.x),在python2.x里 用info.has_key('1101')
  34. print(av_catalog["欧美"]['www.youporn.com'][1])
  35. av_catalog["大陆"][""][1] = "可以在国内做镜像"
  36. print(av_catalog["大陆"][""])
  37. print(info.values()) #打印字典里所有的值
  38. print(info.keys()) #打印字典里所有的key
  39. print(av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]}))
  40. print(av_catalog.setdefault("台湾",{"www.baidu.com":[1,2]})) #有就返回对应的值,如果没有就建立新的
  41. b = {
  42. 'stu1101':'Alex',
  43. 1:3,
  44. 2:5
  45.  
  46. }
  47. info.update(b) #更新2个字典,有重复的更新,没有重复的添加
  48. print(info)
  49. print(info.items()) # 把字典转换列表形式
  50. c = dict.fromkeys([6,7,8,9],[1,{'name':'zk'},'kiko0o0']) #初始化一个字典,key如果是多层,呢么如果修改一个key就会修改全部
  51. print(c)
  52. c[6][1]['name'] = "syf"
  53. print(c)
  54. for i in av_catalog: #建议用这个,效率高
  55. print(i,av_catalog[i])
  56.  
  57. for k,v in av_catalog.items(): #不建议用这个,效率低
  58. print(k,v)

购物车

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:kiko0o0
  4.  
  5. product_list = [
  6. ('iphone',5800),
  7. ('Mac Pro', 9800),
  8. ('Bike', 800),
  9. ('Watch', 10800),
  10. ('Coffe', 31),
  11. ('XX python', 120),
  12.  
  13. ]
  14. shopping_list = []
  15. salary = input("input you salary:").strip()
  16. if salary.isdigit():
  17. salary = int(salary)
  18. while True:
  19. for index,item in enumerate(product_list):
  20. print(index,item[0],item[1])
  21. user_choice = input("选择要买的商品>>>:").strip()
  22. if user_choice.isdigit():
  23. user_choice = int(user_choice)
  24. if user_choice < len(product_list) and user_choice >=0:
  25. p_item = product_list[user_choice]
  26. if p_item[1] <= salary:
  27. shopping_list.append(p_item)
  28. salary -= p_item[1]
  29. print("added \033[32;1m %s \033[0m info shopping cart,your current %s" % (p_item[0],salary))
  30. else:
  31. print('余额不够了')
  32. elif user_choice =='q':
  33. print('shopping_list'.center(50,'-'))
  34. for p in shopping_list:
  35. print(p)
  36. print('your current balance:',salary)
  37. break
  38. else:
  39. print("请重新输入")

集合操作

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:kiko0o0
  4.  
  5. list_1 = [1,2,3,4,5,6,4,3,2]
  6. list_1 = set(list_1) #集合自动去除重复,且无序的
  7. print(list_1,type(list_1))
  8. list_2 = [1,3,6,43,5,2,8,44,5,2]
  9. list_2 = set(list_2)
  10. list_3 = set([1,2,3])
  11. list_4 = set([11,33,66])
  12.  
  13. #交集
  14. print('交集'.center(50,'-'))
  15. print(list_1.intersection(list_2))
  16. print(list_1 & list_2)
  17. #并集
  18. print('并集'.center(50,'-'))
  19. print(list_1.union(list_2))
  20. print(list_1 | list_2)
  21. #差集
  22. print('差集'.center(50,'-'))
  23. print(list_1.difference(list_2)) #in list_1 but not in list_2
  24. print(list_1 - list_2) #in list_1 but not in list_2
  25. print(list_2.difference(list_1)) #in list_2 but not in list_1
  26. print(list_2 - list_1)
  27.  
  28. #对称差集
  29. print('对称差集'.center(50,'-'))
  30. print(list_1.symmetric_difference(list_2)) #把2个里面相互都没有的取出来
  31. print(list_1 ^ list_2) #把2个里面相互都没有的取出来
  32.  
  33. #子集
  34. print(list_1.issubset(list_3)) #是否为子集,返回False,True
  35. #父集
  36. print(list_1.issuperset(list_3)) #是否为父集,返回False,True
  37.  
  38. print(list_1.isdisjoint(list_4)) #没有交集返回为True
  39.  
  40. #添加
  41. list_1.add(222) #添加一个
  42. list_1.update([777,66666,5555]) #添加多个
  43. print(list_1)
  44. #删除
  45. list_1.remove(777) #如果不存在会报错
  46. print(list_1)
  47. list_1.pop() #随机删除
  48. list_1.discard(777) #不存在不会报错
  49. #判断是否存在
  50. print(4 in list_1)
  51. #长度
  52. print(len(list_1))

文件操作

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:kiko0o0
  4.  
  5. # r 读 w 写 a 追加 r+,可读写文件。【可读;可写;可追加】 w+,写读
  6. #"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
  7. #"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
  8. f = open('yesterday','r',encoding='utf-8') #文件句柄
  9.  
  10. print('我是分隔符'.center(50,'='))
  11. print(f.read()) #打印所有
  12. print(f.readline()) #打印一行
  13. print(f.readlines()) #在一行中打印所有的
  14. f.close()
  15. d = open('yesterday2','a',encoding='utf-8')
  16. d.write('我爱北京天安门,\n')
  17. d.write('天安门上太阳升')
  18.  
  19. # 最简洁的读取,不占用过多内存
  20. count = 0
  21. for line in f:
  22. if count == 9:
  23. print('我是第9行'.center(50,'-'))
  24. count +=1
  25. continue
  26. print(line.strip())
  27. count +=1
  28.  
  29. # 循环读取前几行
  30. for i in range(5):
  31. print(f.readline().strip())
  32.  
  33. # 循环读取,但是某一行不读取(过多占用内存)
  34. for index,line in enumerate(f.readlines()):
  35. if index ==9:
  36. continue
  37. print(index,line.strip())
  38.  
  39. print(f.tell()) #打印当前光标位置
  40. f.seek(0) #指定光标位置
  41. z = open('readme.txt','r',encoding='utf-8')
  42. print(z.encoding) #打印文件编码
  43. print(z.buffer)
  44. print(z.fileno()) #打印文件内存编号
  45. print(z.flush()) #内存立即刷新到文件里
  46. print(z.readable()) #判断文件是否可读,不可返回False
  47. print(z.writable()) #判断文件是否可写,不可返回False
  48. print(z.closed) #判断文件是否关闭
  49. f.truncate() #不写就是从0开始清空
  50. f.truncate(10) #截断10个后清空
  51. s = open('yesterday2','wb') #文件句柄 二进制文件
  52. s.write('hello world\n'.encode()) #指定的编码格式编码字符串,不写就是默认的例如UTF-8

进度条

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:kiko0o0
  4.  
  5. import sys,time
  6. for i in range(50):
  7. sys.stdout.write('#')
  8. sys.stdout.flush()
  9. time.sleep(0.1)

需知:

1.在python2默认编码是ASCII, python3里默认是unicode

2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

上图仅适用于py2

  1. #-*-coding:utf-8-*-
  2. __author__ = 'Alex Li'
  3.  
  4. import sys
  5. print(sys.getdefaultencoding())
  6.  
  7. msg = "我爱北京天安门"
  8. msg_gb2312 = msg.decode("utf-8").encode("gb2312")
  9. gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk")
  10.  
  11. print(msg)
  12. print(msg_gb2312)
  13. print(gb2312_to_gbk)
  1. #-*-coding:gb2312 -*- #这个也可以去掉
  2. __author__ = 'Alex Li'
  3.  
  4. import sys
  5. print(sys.getdefaultencoding())
  6.  
  7. msg = "我爱北京天安门"
  8. #msg_gb2312 = msg.decode("utf-8").encode("gb2312")
  9. msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
  10. gb2312_to_unicode = msg_gb2312.decode("gb2312")
  11. gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
  12.  
  13. print(msg)
  14. print(msg_gb2312)
  15. print(gb2312_to_unicode)
  16. print(gb2312_to_utf8)
  1. #-*-coding:gb2312 -*- #这个也可以去掉
  2. __author__ = 'Alex Li'
  3.  
  4. import sys
  5. print(sys.getdefaultencoding())
  6.  
  7. msg = "我爱北京天安门"
  8. #msg_gb2312 = msg.decode("utf-8").encode("gb2312")
  9. msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔
  10. gb2312_to_unicode = msg_gb2312.decode("gb2312")
  11. gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
  12.  
  13. print(msg)
  14. print(msg_gb2312)
  15. print(gb2312_to_unicode)
  16. print(gb2312_to_utf8)

day2-心得的更多相关文章

  1. 冲刺阶段 day2

    day2 项目进展 今天本组五位同学聚在一起将项目启动,首先我们对项目进行了规划,分工,明确指出每个人负责哪些项目.由负责第一部分的组员开始编程,在已经搭建好的窗体内,对系部设置进行了编写,本校共六个 ...

  2. Alpha冲刺Day2

    Alpha冲刺Day2 一:站立式会议 今日安排: 首先完善前一天的剩余安排工作量,其次我们把项目大体分为四个模块:数据管理员.企业人员.第三方机构.政府人员.数据管理员这一模块,数据管理员又可细分为 ...

  3. Beta冲刺——day2

    Beta冲刺--day2 作业链接 Beta冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602134 王龙 ...

  4. Java初学者最近三次作业的心得体会

    作为一个初学者,简单的谈一下自己的作业心得体会.如果你是完全没有接触过Java的学习,本篇博文可能会有些收获,如果你已经学习Java有一段时间了,那么可以放弃这篇文章了,因为这篇文章讲解的是基本的东西 ...

  5. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  7. 【从零开始学BPM,Day2】默认表单开发

    [课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...

  8. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  9. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  10. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

随机推荐

  1. linux上安装mysql以后root不能登录的解决办法

    今天心血来潮在linux上装了mysql,装完以后用命令mysql -uroot -p登录时提示 解决办法: 使用ps aux|grep mysql 查出pid 使用kill pid结束mysql进程 ...

  2. poj2446

    题解: 二分图匹配 看看是否能达到目标 代码: #include<cstdio> #include<cstring> #include<algorithm> #in ...

  3. Win7 x64安装Paramiko

    先说一下我的环境: win7 x64 旗舰版.Python3.5.0.pip8.1.0 pip install paramiko时报错如下: 大概意思: blablabla... 反正大概意思就是少G ...

  4. 用百度地图API打造方便自己使用的手机地图

    有钱人咱就不说了,因为偶是个穷银--因为穷,所以去年买的Huawei C8650+到现在还在上岗,对于没有钱买好的配置的手机的童鞋来说,类似于百度,谷歌,高德等商家的地图在自己的机器上跑起来确实是有点 ...

  5. Js事件处理模型/周期

    有3个阶段 1.  捕获阶段:由外向内,记录各级父元素上绑定的事件处理函数---只记录,不触发. 2.  目标触发:优先触发目标元素上的事件处理函数. 3.  冒泡:由内向外,按捕获的顺序的相反的方向 ...

  6. How to use NSRequest in Delphi XE4

    //Demo How to use NSRequest..procedure TiOSWebBrowserService.DoNavigate(const URL: string);var NewUR ...

  7. 创建假的wifi热点

    本帖介绍怎么创建假的wifi热点,然后抓取连接到这个wifi用户的敏感数据.我们还会给周围的无线路由器发送未认证的包,使这些路由器瘫痪,强迫用户连接(或自动连接)我们创建的假wifi热点. 这种攻击也 ...

  8. 不同apk的activity互相调用

    目标:CHFSAsk.apk调用CHFSAdviser.apk中的AppStart和MainActivity两种activity. CHFSAsk.apk:去调用的apk, 包名为com.chfs.a ...

  9. Ant入门之引用外部jar文件

    笔者在java项目开发中经常遇到引用外部Jar包的情况,使用ant打包过程中需要对其引用.现在此简单记忆以飨来者. 此处引用Log4j,具体程序HelloLog4j.java: package oat ...

  10. [转载] FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...