Python 的字符串

在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说,Python 的字符串支持多语言,例如:

print('包含中文的 str')

对于单个字符的编码,Python 提供了 ord() 函数获取字符的整数表示(方式),chr() 函数把编码转换为对应的字符:

print(ord('中'))
print(ord('A'))
print(chr(66))
print(chr(25991))

测试结果:

20013
65
B

如果知道字符的整数编码,还可以用十六进制这样写 str :

print('\u4e2d\u6587')
输出结果:
中文

两种写法完全是等价的。由于 Python 的字符串类型是 str ,所以在内存中以 Unicode的编码格式表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘里面,就需要把str类型字符串变为以字节为单位的 bytes 。Python 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示,如:x = b'ABC'。

注意区分 'ABC' 和 b'ABC',前者是str字符串类型 ,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节,两者在内存里面得“地址”是不一样的。

如果我们要把 bytes 变为 str字符串型 ,就需要用 decode() 方法:

print(b'ABC'.decode('ascii'))

要计算 str 包含多少个字符,可以用 len() 函数,len() 函数计算的是str的字符数,如果换成 bytes ,len() 函数就计算字
节数:

print( len('ABC'))
print(len(b'ABC'))
运行结果:
3
3

由于 Python 源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 类型的可执行程序,Windows 的系统会忽略这个注释;第二行注释是为了告诉 Python 的解释器,让解释器按照 UTF-8 编码读取源代码,如果不添加,那么在源代码中写的中文在输出的时候可能会有乱码。而且有时候申明了 UTF-8 编码也并不意味着 .py结尾的文件就是 UTF-8 编码的,必须要确保你使用的文本编辑器正在使用 UTF-8 without BOM类型的编码格式。举例如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*- s = 'Python-中文' #有中文字符
print(s)
b = s.encode('utf-8')
print(b)
print(b.decode('utf-8'))

这里提个建议,在进行编码的时候不要用电脑或工具本身自带笔记本来进行编写,有时候这些记事本会“自作聪明”的添加一些未知的字符串进去,而导致程序报错,你却找不到原因,编码工具可以使用submit Text、Visual Studio Code、Notepad、UItrEdit等,具体使用就看个人的使用习惯了。

Python 的字符串的更多相关文章

  1. Python格式化字符串~转

    Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...

  2. python学习--字符串

    python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...

  3. Python格式化字符串和转义字符

    地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义     符   号     说     明 ...

  4. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  5. Python基础-字符串格式化_百分号方式_format方式

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. python判断字符串

    python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...

  7. Python格式化字符串

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  8. python(七)字符串格式化、生成器与迭代器

    字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...

  9. Python 的字符串格式化和颜色控制

    (部分内容源自武神博客和网络收集.) Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两 ...

  10. python反转字符串(简单方法)及简单的文件操作示例

    Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...

随机推荐

  1. Dapper+SqlServerCe部署

    C:\Program Files\Microsoft SQL Server Compact Edition\v4.0 目录下面 选择下面这 7 个 SQL Server Compact DLL,并复制 ...

  2. 字符串正则匹配(递归/DP)

    Wildcard-Matching &  Regular Expression Matching Wildcard-Matching中?匹配任意一个字符,*匹配任意长度字符串包括空字符串 方法 ...

  3. Codeforces 279D The Minimum Number of Variables 状压dp

    The Minimum Number of Variables 我们定义dp[ i ][ mask ]表示是否存在 处理完前 i 个a, b中存者 a存在的状态是mask 的情况. 然后用sosdp处 ...

  4. TCP/IP详解 卷一学习笔记(转载)

    https://blog.csdn.net/cpcpcp123/article/details/51259498

  5. FlashFXP用到的功能

    FlashFXP目前用到的个人理解就是: 一个公共空间  大家同时连接进来可以共享文件进去(该软件支持从屏幕上直接拖拽文件进来) 这里面页面之类的可以用手机进行访问(有利于调试) 第一步接收师哥给的软 ...

  6. lua 语言基础

    1.数据类型: string(字符串) ·运算符“+.-.*./”等操作字符串,lua会尝试讲字符串转换为数字后操作: ·字符串连接用“..”运算符 ·用“#”来计算字符串的长度(放在字符串前面) · ...

  7. 学习--->更新集合/内存/深浅拷贝

     一.计算机基础 1..软件(应用程序) 2.解释器/编译器 - 解释型语言:将代码每一行传递给计算机一行,常用编程语言python,PHP,Ruby. - 编译型语言:将代码完全执行完后会形成一个文 ...

  8. JS正则表达式检验数字或者带小数点的数字

    1. var patrn = /^\d+(\.\d+)?$/; var num = 0.11; if (!patrn.exec(num)){ alert("请您输入数字");ret ...

  9. IEnumerabl 和 IEnumertator

    public interface IEnumerable   {       IEnumerator GetEnumerator();   }   IEnumerator 接口 public inte ...

  10. 盒子模型/div标签/益出处理

    /* <div></div>没有任何功能,不属于功能标签 可以放文字,图片以及各种元素的块标签 常常用来布局 span标签属于行内标签,无法设置宽高 */ <!docty ...