python学习Day06--编码
【主要内容】
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--编码的更多相关文章
- python学习 day06打卡
今天学习的主要内容是: 一,小数据池 代码块的概念 python程序是由代码块构成的,一个代码块的文本作为python程序执行的单元. 代码块:一个模块,一个函数,一个类,甚至每一个command命令 ...
- Python学习-字符编码, 数据类型
本篇主要内容: 字符编码 Python中的数据类型有哪些 类型的一些常用操作及方法 一.字符编码 编码解释的大部分内容摘自廖雪峰老师教程中的讲解,点击跳转. 简单介绍: 我们知道计算机只能处理数字,如 ...
- python 学习笔记-----编码问题
1.python 最早支持的是ASCII编码. 所以对于普通的字符串"ABC"为ASCII编码的形式.字母和数字之间的转换函数为ord('字母')和chr(‘数字’)函数. ord ...
- Python学习-字符编码浅析
1.什么是字符编码 既然是简述那肯定是简单明了.字符编码,看名字就是一种字符的编码格式,由于计算机内部采用二进制,想要将人类的语言字符输入到计算机就需要一种编码格式,这就是字符编码.字符------- ...
- Python学习---深入编码学习1225
1.1. Python2 Py2中只有2中数据类型,Str和Unicode,而且str中保存的是bytes,Unicode中保存的是unicode 一切我们能看到的明文都是unicode数据类型, b ...
- Python学习 day06
一.== 和 is == 比较的是值 is 比较的是地址 id() -- 返回对象的内存地址 例: 赋值操作是将地址赋给变量 Python 中会实现创建一个小型的整形池,范围为 [-5,25 ...
- Python学习(2)——编码
今天写了个程序但是在DOS窗口和IDEL窗口调试的结果不一样,有些郁闷~ #!/usr/bin/env python #coding=utf-8 #python version:2.7.3 #syst ...
- Python学习之——编码方式
1.各种编码方式 ASCII:http://zh.wikipedia.org/zh-hans/ASCII Unicode:http://zh.wikipedia.org/zh-hans/Unicode ...
- Python学习之编码
Python2默认解释器的编码:ascii: Python3默认解释器的编码:UTF-8 ascii码:只会识别英文字母.数字和标点.8位表示一个英文字符,1个字节 万国码Uicode:目前的所有语言 ...
- 字符编码——python学习
python学习—字符编码 例如汉字“中” 十进制:20013 二进制:01001110 00101101(unicode)/11100100 10111000 10101101(utf-8) 十六进 ...
随机推荐
- JVM探秘:Java对象
本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. 对象的创建 虚拟机遇到一条 new 指令时,首先去检查这个指令的参数是否能在方法区常量 ...
- 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告
P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...
- IDEA永久激活使用
前言 今一早一打开IDEA发现秘钥到期了,提示秘钥被取消,不能用了,因为之前也是从网站找的秘钥,所以失效也是情理当中的,所以绞尽脑汁网上找各种破解方法,结果却是被我找到了,这里和大家分享下. 破解步骤 ...
- PHP 经典面试题集
这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看 ...
- apache相关实验-2
一.Apache+openssl 实现 https HTTPS(全称:Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的 HTTP 通道,简单 ...
- Sorted 内置函数的排序使用
Sorted 内置函数的排序使用 Sorted 排序列表 1.倒序对列表进行排序 # 对列表进行降序序排序 list = [1,3,4,23,6,7] list = sorted(list,rever ...
- [开源] SEPP——研发协作一站式管理平台
演示地址 http://www.seqcer.com/ 仅对chrome浏览器做了完全适配,其他chromium核心浏览器或者firefox.safari也能使用,但是不推荐 仓库地址: 前端:htt ...
- OpenJ_Bailian 2815 城堡问题(DFS)
题目传送门OpenJ_Bailian 2815 描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---### ...
- 【Java基础总结】字符串
1. java内存区域(堆区.栈区.常量池) 2. String length() //长度 //获取子串位置 indexOf(subStr) lastIndexOf(subStr) //获取子串 c ...
- Java中的equalsIgnoreCase()
在工作中偶然机会看到了equalsIgnoreCase()这个方法,相信大家和我一样equals()是再熟悉不过的了,但是对于equalsIgnoreCase()有点眼生(大神勿喷),所以写了这篇博客 ...