博客
关于我
Python基础数据知识(1)
阅读量:169 次
发布时间:2019-02-28

本文共 1947 字,大约阅读时间需要 6 分钟。

Python 字符编码与字符串操作

1. 字符编码原理

在 Python 编码时,页面顶端需要添加如下行:

# -*- coding: UTF-8 -*-

原因解释

  • 字符编码

    • ASCII:最早只有 127 个字符被编码到计算机中,包括大小写英文字母、数字和一些符号。例如,大写字母 A 的编码是 65,小写字母 z 的编码是 122
    • GB2312:为了处理中文,ASCII 的一个字节显然不够,至少需要两个字节。因此,中国制定了 GB2312 编码标准,用来将中文字符编码到计算机中。
  • 多语言编码问题

    • 全世界有上百种语言,每个国家都有自己的字符编码标准。例如,日本使用 Shift_JIS,韩国使用 Euc-kr。这些不同的编码标准会导致多语言混合文本中出现乱码问题。
  • Unicode 编码的出现

    • Unicode 统一了所有语言的字符编码,避免了乱码问题。
    • ASCII 编码是 1 个字节,而 Unicode 编码通常是 2 个字节。
  • 字符编码的演变

    • UTF-8:为了在存储和传输上节省空间,Unicode 编码被转换为可变长编码的 UTF-8。
    • UTF-8 的优点:
    • 英文字符通常只需 1 个字节,汉字通常需要 3 个字节,罕见字符可能需要 4-6 个字节。
    • ASCII 编码可以被看作 UTF-8 的一部分,因此支持 ASCII 的旧系统仍能正常运行。
  • 2. 字符类型与操作

    1. 字符串与字节的转换

    • Python 函数

      • ord():获取字符的整数编码。例如,ord('A') 返回 65,ord('中') 返回 25991。
      • chr():将整数转换为对应的字符。例如,chr(20013) 返回 "中"。
      • encode():将字符串转换为字节流。例如,'ABC'.encode('ascii') 返回 b'ABC'。
      • decode():将字节流转换为字符串。例如,b'ABC'.decode('ascii') 返回 'ABC'。
    • 字符串操作

      • 获取字符:使用方括号截取字符串。例如,'Hello World!'[0] 返回 'H','Python Runoob'[1:5] 返回 'ytho'。
      • 字符串更新:使用切片操作修改字符串。例如,'Hello World![:6] + 'Runoob!' 更新为 'Hello Runoob!'。
      • 字符串替换:使用 replace() 方法替换字符。例如,'ales'.replace('l','p') 替换为 'aples'。
      • 去掉空格:使用 strip() 方法去掉首尾空格。例如,' lkjd'.strip() 返回 'lkjd'。
      • 大小写转换:使用 title()upper()lower() 方法分别将字符串转换为首字母大写、全大写和全小写。

    2. 字符串格式化

    • 格式化字符串

      • 使用 % 格式化字符串。例如,'Hello, %s' % 'world' 返回 'Hello, world'。
      • 使用 format() 方法替换占位符。例如,'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125) 返回 'Hello, 小明, 成绩提升了 17.1%'。
    • 特殊字符处理

      • 使用 %% 表示单个 % 字符。例如,'growth rate: %d %%' % 7 返回 'growth rate: 7 %'。

    3. 字符串与字节的互操作

    • 字符串长度

      • len('中文') 返回 2,len(b'ABC') 返回 3,len('中文'.encode('utf-8')) 返回 6。
    • 字符串连接与重复

      • 使用 + 连接字符串。例如,'Hello' + 'Python' 返回 'HelloPython'。
      • 使用 * 重复字符串。例如,'Hello' * 2 返回 'HelloHello'。
    • 成员运算符

      • 使用 innot in 检查字符串中是否包含特定字符。例如,'"H" in 'Hello' 返回 True,'"M" not in 'Hello' 返回 True。
    • 原始字符串

      • 使用 rR 创建原始字符串,避免转义特殊字符。例如,print r'\n'print R'\n' 都输出换行符,但形式不同。

    3. 常见问题与解决方案

    在实际应用中,可能会遇到字符编码问题。例如,读取非 UTF-8 字符流时需要使用 decode('utf-8', errors='ignore') 忽略错误字符。

    4. 总结

    在计算机系统中,统一使用 Unicode 编码,当需要保存或传输时,转换为 UTF-8 编码。Python 提供了丰富的字符串和字节操作功能,能够方便地进行字符编码与解码操作。

    转载地址:http://tpnj.baihongyu.com/

    你可能感兴趣的文章
    Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
    查看>>
    Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
    查看>>
    power english (3) main text -emotion mastery - focus
    查看>>
    POWER ENGLISH (6) - MODEL
    查看>>
    power english (1) —— passion
    查看>>
    Power English (1) 原文
    查看>>
    power English (3)原文
    查看>>
    POWER ENGLISH(7)- repetition
    查看>>
    SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
    查看>>
    powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
    查看>>
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
    查看>>
    PowerBuilder 使用自定义事件触发键盘Enter事件
    查看>>
    PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
    查看>>
    PowerDesigner 使用的一些技巧(转)
    查看>>
    QGIS在Windows上下载安装与建立空间数据库连接
    查看>>
    PowerDesigner165安装婆姐汉花教程
    查看>>
    PowerDesigner使用教程:设置注释、默认值属性
    查看>>
    PowerDesigner使用教程:不显示背景网格
    查看>>
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>