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语言中用以下方式表示进制:
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在字符编码上存在的差异字符编码表示: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')) #中文