python学习Day7 数据类型的转换,字符编码演变历程
一、数据类型的转换
1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表
----> s1 = 'a b c 1 2 3 呵 呵' s2 = s1.split() # ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
1.1.2.列表转字符串 :指定字符" ".join(列表)合并为字符字符串
1.1.3.字符串转字典:先转列表,依据具体需求结合for循环遍历元素,解压赋值,"str.split()"、 " ' '.join(列表)" 拿到需要的值,创建字典
1.1.4.数字转化为字符串:str(所有类型)
1.1.5.字符串转化数字类型:整型int、小数float、布尔bool、复数complex ------前三者直接转换int(a)、float(a)、bool(a)
1.判断是否为正整数.isdigit(),若为True,int()
2.拆分,判断 (索引1号为是否为“-” and 其它位为正整数) or ---------------------------- -3
(索引1号为是否为“.” and 其它位为正整数) or ---------------------------- .15
(索引1号为是否为“-” and 第二位为点 and 其它位为正整数 ) or ------------------------ -.15
((索引1号为是否为“-” and (其它位为正整数 and 其它位共有一个点))-------------------- -3.15
1.1.6 list与tuple、set直接相互转化 - 直接 类型()
1.1.7 map创建一个自定义的字典,通过in成员判定,拿key去映射表拿到对应的值, 举例:汉字转化为数字
二、字符编码演变历程
数据 从 硬盘 => 内存 => cpu
# 应用程序打开文本文件的三步骤
# 1.打开应用程序
# 2.将数据加载到内存中
# 3.cpu将内存中的数据直接翻译成字符显示给用户
# python解释器
# 1.打开python解释器
# 2.将数据加载到内存中
# 3.cpu将内存中的数据解释执行将结果显示给用户,如何解释执行不能通过,将错误信息提供给用户
# 编码的发展史
# 电脑只能识别高低电频对应的0,1信息 => 问题:如何将世间万物信息存放到内存中
# 世间万物信息 => 0,1形式的数据 => 电脑中存放,将该过程逆向操作,就是访问已存储的数据信息
# 编码表
# 人能识别的字符 <=> 机器能识别的字符:一定存在一种固定的对应关系
# 编码表:一定范围内人能识别的字符与机器能识别的字符形成的对应关系表(映射表)
# 1.ASCII表:英文字母、英文符号、数字与机器能识别的字符的对应关系表,8个二进制位就能存放完这所有的对应关系 => 1字节
# python2采用的默认编码是ASCII,早期并不支持中文编程
# 2_1.GBK:中文与与机器能识别的字符的对应关系表(完全兼容ASCII表),16个二进制位能存放所有汉字与ASCII之前的对应关系 => 2个字节
# 2个字节能否存放常用汉字 => 16个二进制位 2^15
# print(pow(2, 15))
# 2_2.Shift_JIS | Euc-kr:日文 | 韩文 与机器能识别的字符的对应关系表(完全兼容ASCII表)
# 乱码:存的编码格式与取的编码格式不一致
# 3.Unicode万国码:世间中常用国家的常用字符与机器能识别的字符的对应关系表
# 转码:Unicode存在汉字与二进制对应关系,GBK也存在汉字与二进制对应关系,将GBK存放的数据转存到Unicode数据
# 均采用Unicode编码表,只是存放数据采用字节数不一致,utf-8与utf-16是Unicode编码表的两种体现方式
# utf-8:以1个字节存放英文,以3 | 6个字节存放汉字,在英文数据过多时,更深空间,用来传输效率更高
# utf-16:所有支持的符号都采用2个字节存放,读存数据采用定长,不用计算,读存效率高
# 硬盘到内存需要数据的传输,内存到CPU需要数据的传输,所有都采用utf-8
# 内存需要高速读写,采用utf-16
# 学习的结晶:编码与解码要统一编码
# 操作文本字符
res = "汉字呵呵".encode('utf-8') # 编码:将普通字符串转化为二进制字符串
print(res) # b'\xe6\xb1\x89\xe5\xad\x97\xe5\x91\xb5\xe5\x91\xb5'
res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('GBK') # 解码:将二进制字符串转化为普通字符串
print(res) # 鍛靛懙 乱码了
res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('utf-8')
print(res) # 呵呵 读写编码统一后就不乱码了
python学习Day7 数据类型的转换,字符编码演变历程的更多相关文章
- python 学习之 基础篇二 字符编码
声明: 博文参考1:字符编码发展历程(ASCII,Unicode,UTF-8) 博文参考2:Python常见字符编码间的转换 (1)为什么要用字符编码 早期的计算机使用的是通电与否的特性的真空管,如果 ...
- python学习之路 三:字符编码
本节重点 彻底掌握字符编码之前的转换关系 掌握 python2 vs python3 上编码的区别 掌握 python2 和python3 上bytes,str 的区别 补充知识点:三元运算 三元运 ...
- python学习(2)关于字符编码
关于字符编码的学习内容笔记如下: 1.计算机只能用0和1来进行记录和存储.计算机是二进制. 2.ASCII(American Standard Code for Information Interch ...
- python学习day7 数据类型及内置方法补充
http://www.cnblogs.com/linhaifeng/articles/7133357.html#_label4 1.列表类型 用途:记录多个值(一般存放同属性的值) 定义方法 在[]内 ...
- python学习第八天二进制和字符编码有关联
计算机所能识别只有0,1这两种状态,但是我们人类用字母,汉字,还有其他语言,那么怎么和计算机进行沟通呢,python编程语言最早unicode,现在统一用utf8,UTF8通用的编码语言,所有语言都包 ...
- python学习6—数据类型之集合与字符串格式化
python学习6—数据类型之集合与字符串格式化 1. 使用id()可以查看一个变量的内存地址: name = 'alex' id(name) 2. 进制转换 十进制转换为二进制等: a = 10 # ...
- Java工具类-转换字符编码
package common; /** *字符串处理公用类 */ public class DealString { /** * 转换字符编码 由“iso-8859-1”西文转换为简体中文 */ pu ...
- php转换字符编码为utf-8
php转换字符编码为utf-8 function strToUtf8($str){ $encode = mb_detect_encoding($str, array("ASCII" ...
- Python学习日记(二)——字符转编码操作
首先搞清楚:Python3的默认编码是unicode,Python2的默认编码是ASCII码 为什么需要编解码? 打个比方:假如说我做了一个游戏,叫<西游记>,游戏传到了日本去.但是日本人 ...
随机推荐
- Linux基础入门-环境变量与文件查找
一.环境变量: Shell中的变量也有不同的数据类型,不用专门指定类型名,可以参与运算,有作用域限制. declare tmp 创建一个变量 可以不用专门声明,可以即用即创建 tmp=shiyanlo ...
- C语言volatile关键字的用法
volatile关键字的意义在于让被关键字修饰的变量每次使用时都重新去主内存里读取变量,而不是从高速缓存去读取. int a = 1; 普通变量定义之后,若要使用它,都会 先把它的值从主内存拷贝到高速 ...
- 错误界面 SQL2008备份集中的数据库备份与现有的数据库不同,错误号码:3154。
转载来源 https://blog.csdn.net/zaocha321/article/details/8466735 因为我也用这个方法成功了.所以记录下来 错误界面 SQL2005备份集中的数 ...
- 排产的两种方式(前推式与后拉式)在Optaplanner上的体现
生产计划的约束 在制定生产计划过程中,必然是存在某些制约因素,满足某些需求才能进行的,或是交期保证.或是产能限制.或是关键工序制约.即TOC理论 - 任何系统至少存在着一个制约因素/瓶颈:否则它就可能 ...
- js 浏览器窗口大小改变 高度 宽度获取 window/document.height()区别
<script> //当浏览器的窗口大小被改变时触发的事件window.onresize window.onresize = function(){ console.log($(windo ...
- C++调用JS函数
1 调用方法 https://blog.csdn.net/donglinshengan/article/details/29828103 https://blog.csdn.net/sunmz_wjx ...
- SQL 生日得到年龄
CREATE FUNCTION ufn_hr_getagefrombirthday ( @birthday DATE, @now DATE =NULL ) ) BEGIN IF (@now IS NU ...
- docker 搭建 hustoj
docker 搭建 hustoj hustoj 是个GPL开源的OJ,其提供了docker形式的安装方式. 为执行方便,选择使用aliyun提供的docker镜像来加速安装. 拉取镜像 docker ...
- Galaxy2D游戏引擎常见问题解答
◆Galaxy2D游戏引擎开源吗? Galaxy2D游戏引擎不开源. ◆Galaxy2D相对HGE有何优点? Galaxy2D相对HGE有以下优点: (1)自带音频播放功能,HGE ...
- 01-JDK环境配置
环境说明: Window server 2008 64位 jdk-7u80-windows-x64 apache-tomcat-7.0.57-windows-x64 1.安装JDK环境配置 JAVA_ ...