【主要内容】

1. is 和 == 区别
id()函数
== 判断两边的值
is 判断内存地址
回顾编码:
1. ASCII: 英文, 特殊字符, 数字, 8bit, 1byte
2. GBK: 中文 16bit, 2byte. 兼容ASCII
3. unicode: 万国码, 32bit 4byte. 兼容ASCII
4. UTF-8: 长度可变的unicode. 英文:8bit, 欧洲:16bit, 中文:24bit 3byte python2 只能用ASCII
python3 有unicode, 默认的编码就是unicode
内存里用的是unicode. 硬盘和网络传输用的是utf-8或者GBK 2. encode() 编码. 获取到的是编码之后的结果. bytes
3. decode() 解码. 把bytes编程我们熟悉的字符串

【代码】

1、is和==

 # s = "alex 是 大 xx"
# abc = id(s) # 得到内存地址
# print(abc) # lst = ["大阳哥", "佳琪哥", "小花生", "燃哥"]
# print(id(lst)) # 就是一个内存地址. 毫无意义 # lst = ["周杰伦", "燃哥"]
# lst1 = ["周杰伦", "燃哥"]
# print(id(lst))
# print(id(lst1)) # s = "燃哥"
# s1 = "燃哥"
# # 小数据池. 会对字符串进行缓存, 为了节省内存
# print(id(s))
# print(id(s1)) # tu = ("燃哥", "周杰伦")
# tu1 = ("燃哥", "周杰伦")
# print(id(tu), id(tu1)) # dic = {"a": "b", "c":"d"}
# dic1 = {"a": "b", "c":"d"}
# print(id(dic), id(dic1)) # a = 10
# b = 10
# print(id(a), id(b)) # 布尔也有,
# a = True
# b = True
# print(id(a), id(b)) # -5
# a = 257
# b = 257
# print(id(a), id(b)) # a = "小威"
# b = "小威"
# print(id(a), id(b)) # 1. id() 查看内存地址
# 2. str 有小数据池的 # == is id
# == 判断. 左右两端是否相等和一致, 比较的是内容
# is 判断. 判断的是内存地址 id()的值来判断 内存地址 # lst = ["马化腾", "小威"]
# lst2 = ["马化腾", "小威"]
# print(lst == lst2) # True
# print(lst is lst2) # False # s = "alex"
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
# print("1111111111")
#
# s2 = "alex"
# print(s == s2) # True
# print(s is s2) # True. 小数据池 # s1 = "@akljflkasdjklfjkasdlfjklsdajfklsdajfklasdjkflasdjklfjsdaklfjsdakljfklasdjfklsdajfklsdajfklsdajklfsjadklfjsadklfjasdkljfklsdjfklsdjfklsdjfklsdjfklasdjfklasdjklfjasdklakljflkasdjklfjkasdlfjklsdajfklsdajfklasdjkflasdjklfjsdaklfjsdakljfklasdjfklsdajfklsdajfklsdajklfsjadklfjsadklfjasdkljfklsdjfklsdjfklsdjfklsdjfklasdjfklasdjklfjasdkl"
# s2 = "@akljflkasdjklfjkasdlfjklsdajfklsdajfklasdjkflasdjklfjsdaklfjsdakljfklasdjfklsdajfklsdajfklsdajklfsjadklfjsadklfjasdkljfklsdjfklsdjfklsdjfklsdjfklasdjfklasdjklfjasdklakljflkasdjklfjkasdlfjklsdajfklsdajfklasdjkflasdjklfjsdaklfjsdakljfklasdjfklsdajfklsdajfklsdajklfsjadklfjsadklfjasdkljfklsdjfklsdjfklsdjfklsdjfklasdjfklasdjklfjasdkl"
# print(id(s1), id(s2))
#
# s = "abc中def"
# print(s.title())

2、编码

 # s = "alex马"
# 想要存储.必须进行编码 # encode() 编码之后的内容是bytes类型的数据 # 30个字节 10个字. 每个字3个字节
# b'\xe6\x9d\x8e\xe5\x98\x89\xe8\xaf\x9a\xe7\x9a\x84\xe5\x84\xbf\xe5\xad\x90\xe8\xa2\xab\xe7\xbb\x91\xe6\x9e\xb6\xe4\xba\x86'
# bs = s.encode("UTF-8") # 把字符串编码成UTF-8的形式
# print(bs) # 英文:编码之后的结果是英文本身
# 中文:编码之后UTF-8 下. 一个中文3个字节 # s = "饿了么"
# bs = s.encode("GBK") # b'\xb6\xf6\xc1\xcb\xc3\xb4' GBK 一个中文:2个字节
# print(bs) # s = "中"
# print(s.encode("utf-8"))
# print(s.encode("GBK")) # decode()解码 # bs = b'\xb6\xf6\xc1\xcb\xc3\xb4' # 从别人那里读到的 GBK
#
# # 编程人认识的东西
# s = bs.decode("GBK") # 解码之后是字符串, 用什么编码就用什么解码
# print(s) # GBK => utf-8
bs = b'\xb6\xf6\xc1\xcb\xc3\xb4'
# 先解码成unicode字符串
s = bs.decode("GBK")
# 在把字符串编码成UTF-8
bss = s.encode("UTF-8")
print(bss)

3、作业与练习

 '''

 s = "k:1|k1:2|k2:3|k3:4"
lst=s.split("|")
dic={}
for i in lst:
k,v = i.split(":")
dic[k]=int(v)
print(dic) # 有如下值li=[11,22,33,44,55,66,77,88,99,90]
# 将所有大于66的值保存至字典的第一个key中,将小于66的所有值保存到第二个key值中
li=[11,22,33,44,55,66,77,88,99,90]
#法一
# dic={"k1":[],"k2":[]}
# for el in li:
# if el > 66:
# dic["k1"].append(el)
# elif el < 66:
# dic["k2"].append(el)
# else:
# pass
# print(dic)
dic={}
for el in li:
if el > 66:
dic.setdefault("k1",[]).append(el)
elif el < 66:
dic.setdefault("k2",[]).append(el)
print(dic)
'''

python学习Day06--编码的更多相关文章

  1. python学习 day06打卡

    今天学习的主要内容是: 一,小数据池 代码块的概念 python程序是由代码块构成的,一个代码块的文本作为python程序执行的单元. 代码块:一个模块,一个函数,一个类,甚至每一个command命令 ...

  2. Python学习-字符编码, 数据类型

    本篇主要内容: 字符编码 Python中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...

  3. python 学习笔记-----编码问题

    1.python 最早支持的是ASCII编码. 所以对于普通的字符串"ABC"为ASCII编码的形式.字母和数字之间的转换函数为ord('字母')和chr(‘数字’)函数. ord ...

  4. Python学习-字符编码浅析

    1.什么是字符编码 既然是简述那肯定是简单明了.字符编码,看名字就是一种字符的编码格式,由于计算机内部采用二进制,想要将人类的语言字符输入到计算机就需要一种编码格式,这就是字符编码.字符------- ...

  5. Python学习---深入编码学习1225

    1.1. Python2 Py2中只有2中数据类型,Str和Unicode,而且str中保存的是bytes,Unicode中保存的是unicode 一切我们能看到的明文都是unicode数据类型, b ...

  6. Python学习 day06

    一.== 和 is ==  比较的是值 is   比较的是地址 id()  --  返回对象的内存地址 例: 赋值操作是将地址赋给变量 Python 中会实现创建一个小型的整形池,范围为 [-5,25 ...

  7. Python学习(2)——编码

    今天写了个程序但是在DOS窗口和IDEL窗口调试的结果不一样,有些郁闷~ #!/usr/bin/env python #coding=utf-8 #python version:2.7.3 #syst ...

  8. Python学习之——编码方式

    1.各种编码方式 ASCII:http://zh.wikipedia.org/zh-hans/ASCII Unicode:http://zh.wikipedia.org/zh-hans/Unicode ...

  9. Python学习之编码

    Python2默认解释器的编码:ascii: Python3默认解释器的编码:UTF-8 ascii码:只会识别英文字母.数字和标点.8位表示一个英文字符,1个字节 万国码Uicode:目前的所有语言 ...

  10. 字符编码——python学习

    python学习—字符编码 例如汉字“中” 十进制:20013 二进制:01001110 00101101(unicode)/11100100 10111000 10101101(utf-8) 十六进 ...

随机推荐

  1. linux 没有音频输出的解决方式

    用户级别的-/.asoundrc 文件. 如果文件不存在,可以手动创建. 其中的各个 ID,请根据实际情况调整: defaults.pcm.card 1 defaults.pcm.device 0 d ...

  2. 面试官刁难:Java字符串可以引用传递吗?

    老读者都知道了,六年前,我从苏州回到洛阳,抱着一幅"海归"的心态,投了不少简历,也"约谈"了不少面试官,但仅有两三个令我感到满意.其中有一位叫老马,至今还活在我 ...

  3. java之set接口

    1.set集合不能存储重复的元素, 2.HashSet集合不能保证的迭代顺序与元素存储顺序相同. 3.HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与eq ...

  4. 当Parallel遇上了DI - Spring并行数据聚合最佳实践

    分析淘宝PDP 让我们先看个图, Taobao的PDP(Product Detail Page)页. 打开Chrome Network面板, 让我们来看taobao是怎么加载这个页面数据的. 根据经验 ...

  5. es6种for循环中let和var区别

    let和var区别: for(var i=0;i<5;i++){ setTimeout(()=>{ console.log(i);//5个5 },100) } console.log(i) ...

  6. ArcEngine 创建线要素图层

    在创建要素图层的时候,默认的几何类型是Polygon: Dim objectClassDescription As IObjectClassDescription = New FeatureClass ...

  7. AtCoder Beginner Contest 151 题解报告

    总的来说,这次的题目比较水,然而菜菜的我并没有把所有题目都做完,话不多说,直接来干货: A:Next Alphabet 题目链接:https://atcoder.jp/contests/abc151/ ...

  8. uni app canvas 不生效

    canvas 创建canvas绘图上下文. <canvas style="width: 300px; height: 200px;" canvas-id="firs ...

  9. Numpy的介绍与基本使用方法

    1.什么是Numpy numpy官方文档:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 NumPy是一个功能强大的Pytho ...

  10. 重拾c++第三天(6):分支语句与逻辑运算符

    1.逻辑运算符 && || ! 2.关系运算符优先级高于逻辑运算符 3.cctype库中好用的判断 4. ?:符号用法: 状态1?结果1:结果2 5.switch用法: switch ...