Python之字符串与编码

字符编码

  • 几个常见国家的字符编码:

    美国:ASCII(一个英文字符占1个byte)
    中国:GB2312(一个中文字符占2个byte)
    日本:shift_JIS
    韩国:Eur_kr

  • 统一字符编码:Unicode

    Unicode解决了多种语言编码冲突的问题,但是一个英文字母占2个byte

  • 可变长编码:UTF-8

    UTF-8Unicode的基础上节省了空间,英文字母1个byte而中文字母2个byte

Python的字符编码

 python 用的是`Unicode`编码,也就是说,Python的字符串支持多语言

字符 与编码的转换函数:ord()、chr()

  • 字符转换成编码:ord()
    >>> ord('m')
     109
    >>> ord('M')
    77
    >>> ord('A')
    65
    >>> ord('a')
    97
    
  • 编码转换成字符:chr()
    >>> chr(65)
    'A'
    >>> chr(3000)
    'ஸ'
    >>> chr(3)
    '\x03'
    >>> chr(93)
    ']'
    >>> chr(96)
    '`'
    >>> chr(94)
    '^'
    

字符串与bytes的转换函数:encode()、decode()

  • bytes的表示:

    abc的bytes表示为:b'abc'

  • 字符转化成bytes : encode()
    >>> 'string'.encode('ascii')
    b'string'
    >>> 'string'.encode('utf-8')
    b'string'
    >>> '中文'.encode('utf-8')
    b'\xe4\xb8\xad\xe6\x96\x87'
    >>> '中文'.encode('gb2312')
    b'\xd6\xd0\xce\xc4'
    
  • bytes转换成字符串:decode()
    >>> b'abc'.decode('ascii')
    'abc'
    >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
    '中文'
    
    • 当出现无法解码错误时,可以这样:
      >>> b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore')
      '中'
      
  • 字符/字节长度函数:len()
    >>> len(b'ABC')
    3
    >>> len(b'\xe4\xb8\xad\xe6\x96\x87')
    6
    >>> len('中文')
    2
    >>> len('中文'.encode('utf-8'))
    6
    

*注意: ' '" "在上述函数中等效,当'''"""时是多行输入,即'"不能引入本身!例如:

>>> '''.encode('gb2312')
...
...
>>> "'".encode('gb2312')
b"'

python的格式化输出

  • C语言类型的格式化输出:
>>> print('''这是整型:%d,%2d,%02d;
... 这是浮点型:%f--%.2f--%.3f%%''' %(45,4,3,3.13,3.123455,56.0))
这是整型:45, 4,03;
这是浮点型:3.130000--3.12--56.000%
>>>
  • format输出:
    >>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    'Hello, 小明, 成绩提升了 17.1%'
    

python源文件常用编码设置

  • 源文件开头声明:
    #!/usr/bin/env python3
    # -*-coding: utf-8 -*-
    
  • 文本编辑器设置:
    Encoding设置为:Encode in UTF-8 without BOM

一点好玩的东西^_^

在python中输入:

>>> print(chr(9997))
✍
>>> print(chr(9996))
✌
>>> print(chr(9995))
✋
>>> print(chr(9993))
✉
>>> chr(9993)
'✉'

好玩吧^_^

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容