码迷,mamicode.com
首页 > 编程语言 > 详细

python学习-字符和编码

时间:2019-06-23 01:25:51      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:%s   补充   优化   pre   乱码   return   app   form   添加   

一、ASCII、Unicode、UTF-8的由来和关系

1、由来:因为计算机只识别数字,所以计算机的发明国家美国对大小写英文字母、数字以及一些特殊符号进行了编码,共127个,即ASCII编码表。

2、发展:因为ASCII编码不支持中文,所以中国制定了GB1312编码,韩国制定了Euc-kr、日本制定了Shift-JIS...

3、整合:世界上有上百种语言,使用各自的编码最终的结果就是乱码。因此Unicode编码出现了,Unicode支持所有的语言。也是计算机使用的编码。

4、优化:Unicode虽然支持所有的语言,解决了乱码问题,但是也有不足。无论是英文、中文字符,在Unicode编码下所占的存储空间都是2个字节(1个字节=8个比特,也就是十进制的255,二进制的11111111),而实际上,英文字符仅需要1个字节的存储空间,Unicode采取的方式是在二进制前填充0。例如:

字符"A"在ASCII编码中是65,二进制表示是1000001,而使用Unicode则表示为:00000000 01000001。这样,相当于占用了2个字节的存储空间。所以,utf-8出现了。utf-8把字符按不同的大小编码成1-6个字节,英文一般是1个,中文是3个字节,个别生辟字占用4-6个。

5、注意:计算机内存中统一使用Unicode,当需要保存到硬盘或者输出时,则转化为UTF-8。

二、学习

1、Unicode的ord()和chr()方法,#号后为输出。

ord("A") #65
ord("1") #49
ord("a") #97
ord("")#20013
chr(65) #A
chr(20013) #

 

2、字符转二进制

name = "A"
for i in name:
    j = bytes(i,encoding = "utf-8")
    print("字符\"%s\"用二进制输出为:"%i)
    for m in j:
        n = bin(m)
        print(n,end = " ")
    print()

 

3、十进制转二进制

l = []
num =19
def a(num):
    if num < 0 :
        return "-"+a(abs(num))
    while True:
        num,r = divmod(num,2)
        l.append(str(r))
        print(l)
        if num == 0:
            return "".join(l[::-1])

4、对数字进行36进制内的转换

def baseN(num, b):
  return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0") +"0123456789abcdefghijklmnopqrstuvwxyz"[num % b])
baseN(2,16)

5、占位符%和format()的使用

#占位符,等同于format()
print("%2d-%03d"%(3,10)) 
# 3-010 
#3前面有空格,因为未指定补充值
print("%3d-%03d"%(3,10)) 
#           3-010
#  %3d,在值前面生成2个空格
#  %03d,在个十位数前面填充0,显示为3位数
print("%d-%d"%(3,1))
#3-1
print("%.1f"%3)
#3.0
print("%d%%"%7)
#7%

6、转义符\和r

#转义符\,在单引号或者双引号内需要使用特殊符号时,在符号前添加转义符\
print(I\‘m \"zhangchun1\")
# I‘m "zhangchun1"
print("I\‘m \"zhangchun\"")
# I‘m "zhangchun"
# \n与\t 代表换行和制表符,
print("I\‘m \n\"zhangchun\"")
print("I\‘m \t\"zhangchun\"")
# I‘m 
# "zhangchun"
# I‘m     "zhangchun"
#转义r,使用r时,则""内部默认不转义
print(r"I\‘m \t\"zhangchun\"")
# I\‘m \t\"zhangchun\"

 

 

 

 

 

python学习-字符和编码

标签:%s   补充   优化   pre   乱码   return   app   form   添加   

原文地址:https://www.cnblogs.com/zc-beyond/p/11071001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!