python概念知识点笔记(python系列课程之基本概念)

前面我们简单地介绍了python的历史、为什么要学python,python的开发环境的安装,这一节我们来介绍一些基本概念,接下来我们就来聊聊关于python概念知识点笔记?以下内容大家不妨参考一二希望能帮到您!

python概念知识点笔记(python系列课程之基本概念)

python概念知识点笔记

前面我们简单地介绍了python的历史、为什么要学python,python的开发环境的安装,这一节我们来介绍一些基本概念。

进制转换

什么是进制呢,学过计算机基础的,大家对这个概念应该不陌生。进制数也就是进位计数制数,是人为定义的带进位的计数方法。 对于任何一种进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位;其中可以使用数字符号的数目称为基数,基数为n就称为n进制。举个简单的例子,生活中我们使用的是十进制用数字0-9表示,共计10个数字,故称作十进制,逢10就向上进一位

上面讲了生活中我们用十进制来进行计算,那么计算机通信则是采用二进制,顾名思义二进制用两个数字表示(0和1),逢二进一。

根据以上原则16进制,应该由16个数字和符号表示的,数字世界都是由0-9组成,那么超过数字9怎么办呢,聪明的人类想了一个办法,用大写的A、B、C。。。字母表示。因此16进制,就用0-9和A-F表示,共计16个基数,即A表示16进制的10,F表示16进制的15,超过部分向上进一,如16进制的16则表示为10。

pyhon语言中用以下方式表示进制:

  • 二进制:以0b表示,如0b10,转换成十进制就是2
  • 八进制:以0o表示,如0o10,转换为十进制就是8
  • 十进制:默认
  • 十六进制:以0x表示,如0xF,转换为十进制就是15

python语言中的进制转换:

#将十进制数字12使用bin内置函数可以将数字转换成二进制 print(bin(12)) # 0b1100 # 将十进制数字12使用oct内置函数可以将数字转换成八进制 print(oct(12)) # 0o14 # 将十进制数字12使用hex内置函数可以将数字转换成十六进制 print(hex(12)) # 0xc #使用内置函数eval,将其他进制转为十进制,注意里面写字符串,输出的是int类型 a = eval('0b1100100') # 二进制转化为十进制 b = eval('0o1102') # 八进制转化为十进制 c = eval('0xAD') # 十六进制转化为十进制 #也可以使用int()将其他进制转化为十进制 a1 = int('1100100', 2) # 二进制转化为十进制,2可以写成0 b1 = int('1102', 8) # 八进制转化为十进制 c1 = int('AD', 16) # 十六进制转化为十进制

编码

什么是编码呢,在计算机历史的早期,以美国为代表的英语系国家主导了整个计算机行业,26个英文字母组成了多样的英语单词、语句、文章。因此,最早的字符编码规范是ASCII码,一种8位即1个字节的编码规范,它可以涵盖整个英语系的编码需要。编码就是把一个字符串用二进制表示,计算机在存储和读取的过程中,处理的都是010101这样的二进制比特流。

后来随着计算机的大量普及,中、日、韩等国家的文字在计算机内表示,ASCII的255位远远不够,于是标准组织就制定了叫做Unicode的万国码,他规定任何一个字符至少以2个字节表示,例如英文字母用2个字节表示,而汉字就用3个字节表示。这种编码虽好,满足了所有文字的要求,但是他不兼容ASCII,同时还占用最多的内存空间,英文字母明明1个字节就能表示,非要用2个,于是UTF-8编码应用而生,它规定英文字母系列用1个字节表示,汉字用3个字节表示等等。因此,它兼容ASCII,可以解码早期的文档。UTF-8很快就得到了广泛的应用。

在编码的发展历程中,我国还创造了自己的编码方式,例如GBK,GB2312,BIG5。他们只局限于在国内使用,不被国外认可。在GBK编码中,中文汉字占2个字节。

python2.7和python3在字符编码上存在的差异
  • python2.7中默认编码是与开发环境所有的操作系统保持一直的,windows是GBK,macOS是uft8,linux是utf8
  • python3中则统一采用Unicode编码
python3中str和bytes的区别
  • 与python2.7不同的是,python3对字符串和二进制数据做了明确的区分。文本总是Unicode,由str(字符串)类型表示,音频、视频等二进制数据则由bytes类型表示。
  • 编码为Unicode的文本显示为str,其他编码(gbk,utf8,ASCII等)显示为bytes(16进制方式表示)
  • 在python3中encode和decode都是相对于Unicode而言的
  1. encode方法是str数据类型拥有的方法,将Unicode编码数据转为其他编码,作为新对象返回
  2. decode方式是bytes数据类型拥有的方法,将其他编码数据解码为Unicode编码,作为新对象返回

字符编码表示:b代表bytes类型,x代表编码是16进制的,u表示编码是Unicode的

s='中文' # 将s转为Unicode编码(16进制) print(s.encode('unicode-escape')) #b'\\u4e2d\\u6587' s1=b'\\u4e2d\\u6587' # 将16进制的Unicode解码为中文 print(s1.decode('unicode-escape')) #中文 # 将s转为GBK编码(16进制) print(s.encode('gbk')) #b'\xd6\xd0\xce\xc4' s1=b'\xd6\xd0\xce\xc4' # 将16进制的gbk解码为中文 print(s1.decode('gbk')) #中文 # 将s转为utf-8编码(16进制) print(s.encode('utf-8')) #b'\xe4\xb8\xad\xe6\x96\x87' s1=b'\xe4\xb8\xad\xe6\x96\x87' # 将16进制的gbk解码为中文 print(s1.decode('utf-8')) #中文

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页