《Python语言程序设计》——3.3 字符串和字符

简介:

本节书摘来自华章计算机《Python语言程序设计》一书中的第3章,第3.3节,作者:[美]梁勇(Y. Daniel Liang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 字符串和字符

关键点:字符串(第1章讲过)是一连串的字符。Python处理字符和字符串的方式是一样的。
在Python里,你除了可以处理数值,还可以处理字符串。一个字符串就是一串包括文本和数字的字符。字符串必须被括在一对单引号( ' )或者双引号( " )里。Python没有字符数据类型。一个字符的字符串代表一个字符。例如:


30949486ba48790ebb0da31cb4ba7685f4bd6ea4

第一条语句将只有字符A的字符串赋值给变量letter。第二条语句将只有数字字符4的字符串赋值给变量number。第三条语句将字符串“good morning”赋值给变量message。
注意:本书统一使用双引号来括住多个字符构成的字符串,用单引号来括住单个字符的字符串或空字符串。这个习惯与其他程序设计语言是一致的,因此很容易就能让你将一个Python程序转换成其他语言程序。
3.3.1 ASCII码
计算机在内部是使用二进制数的(参见第1.2.2节)。在计算机里,一个字符被存储为一连串的0和1。把一个字符映射成它对应的二进制被称为字符编码。对字符编码的方式有很多。编码表定义编码字符的方式。流行的编码标准是ASCII(美国信息交换标准代码),它是一个比特的编码表,足以表示所有的大小写字母、数字、标点符号以及控制字符。ASCII码使用0到127来表示字符。附录B中给出ASCII码表示的字符。
3.3.2 统一码
Python也支持统一码。统一码是一种编码表,它能表示国际字符。ASCII码表是统一码的子集。统一码由统一码协会(Unicode Consortium)建立,支持世界上各种语言所写的文本进行交换、处理和展示。一个统一码以“u”开始,后面紧跟四个十六进制数字,它们从“u0000到uFFFF”(有关十六进制数的信息参见附录C)。例如,“welcome”被翻译成中文后就是两个字符:“欢”和“迎”。这两个字符的统一码表示是“u6B22u8FCE”。
程序清单3-3中的程序显示两个中文字符和三个希腊字母,如图3-1所示。
程序清单3-3 DisplayUnicode.py

ce5329e704ecbd814028c39d33a46ca4ab340b94

如果你的系统里没有安装中文字体,你将看不到相应的中文字符。在这种情况下,为了避免错误,就从你的程序里删除“u6B22u8FCE”。希腊字母α、β、γ的统一码表示是“u03b1”、“u03b2”和“u03b3”。
3.3.3 函数ord和chr
Python提供ord(ch)函数来返回字符ch的ASCII码,用chr(code)函数返回code所代表的字符。例如:

326b272cfa4c0043530193499a17a3a584df4aae

a的ASCII码值是97,比A(65)的编码值要大。小写字母的ASCII码是从a开始,然后是b、 c依次类推直到z的连续整数。大写字母也是一样的。任何小写字母的ASCII码与它对应的大写字母的ASCII码的差值都一样:32。这是一个很有用的处理字符的特性。例如,任何小写字母的大写字母,如下代码所示:

cbf7442810d6ecdef61ecb2267ffb00b267bad76

第六行将一个小写字母赋值给lowercaseletter。第七行获取它对应的大写字母。
3.3.4 转义序列
假如你想输出带有引号的字符串。你能编写如下所示的语句吗?

<a href=https://yqfile.alicdn.com/91ac64604e82f821959ad294867954bf5a9660d4.png
" >

答案是不行!这条语句有一个错误。因为Python认为第二个双引号就是这个字符串的结尾,因此,它就不知道该如何处理剩下的字符。
为了解决这个问题,Python使用一种特殊的符号来表示特殊的字符,如表3-3所示。这种由反斜杠“”和其后紧接着的字母或数字组合构成的特殊符号被称为转义序列。
字符“n”也被称为换行符或行结束(EOL)字符,它们表示一行的结束。字符“f”让打印机从下一页打印。字符“r”被用来把光标移动到同一行的第一个位置。字符“f”和“r”在本书中很少被用到。
现在,你可以使用下面的语句打印带引号的消息:

<a href=https://yqfile.alicdn.com/d16736093f18540db32d91caf40c424890484bbe.png
" >

注意:符号和"在一起代表一个字符。
3.3.5 不换行打印
当使用print函数时,它会自动打印一个换行符,这会导致输出提前进入下一行。如果你并不想在使用print函数后换行,可以使用下面的语法在调用print函数时传递一个特殊的参数end =“anyendingstring”:

<a href=https://yqfile.alicdn.com/e2d181aed8033270634eaeca6cd89dc49138cc52.png
" >

例如,下面的代码:

1d608609084dcfcb7321382c2370fc9161fe834d

显示:

<a href=https://yqfile.alicdn.com/49b70c23d83f79230cca09605f99a62afcd61f83.png
" >

第1行打印AAA和一个空字符' ',第2行打印BBB,第三行打印CCC和 ,第4行打印DDD和。注意:第2行的' '表示一个空字符串。所以,' '不会打印任何内容。
你也可以使用下面的语法使用end参数打印各项条目:

<a href=https://yqfile.alicdn.com/b703eaae37d1a8b012a4aaf4412d342d7dd99c6b.png
" >

例如:

1bfdc00e02e462f0ad9d00eb0e450d7a3055e3fe

显示

596d7e0897b13288f1bba5841d54841ed80030dc

3.3.6 函数str
str函数可以将一个数字转换成一个字符串。例如:

73034d85e090e1291c56f6c217faf7f27ece4a76

3.3.7 字符串连接操作
你可以使用运算符+来对两个数字做加法。你也可以使用+运算符来连接两个字符串。下面是一些例子:

3043a58be3bc33ed7d6bfeace747d86269276cf6

第1行把三个字符串连接成一个。在第5行,str函数将变量chapterNO中的数值转换成一个字符串。这个字符串与“Chapter”连接在一起得到一个新字符串“Chapter 3”。
增强型赋值运算符+=也能用来连接字符串。例如:下面的代码就将字符串“message”与字符串“and Python is fun”连接在一起。

<a href=https://yqfile.alicdn.com/123b98b3b1d7847e3cf8a9c40ccc5ef5f2aa9a6c.png
" >

3.3.8 从控制台读取字符串
为了从控制台读取一个字符串,可以使用input函数。例如:下面的代码从键盘读取了三个字符串:

a6e7983a7e6add39439876e9c4dcebc64fcdc8bf

检查点
3.5 使用ord函数找出1、A、B、a和b的ASCII码,使用chr函数找出十进制数40、59、79、85和90所对应的字符。
3.6 如何显示字符和"?
3.7 如何用统一码编写一个字符?
3.8 假如运行下面程序的时候输入A。那么输出什么?


<a href=https://yqfile.alicdn.com/8e3530005ca39acc09f16a6942d1c902fe49228c.png
" >

3.9 假如运行下面的程序的时候输入A和Z。那么输出什么?

b997ea0ce467e0924d66e9d6e25a0ca02c3c2220

3.10 下面的代码错在哪里?你能改正吗?

f4e11509686c4d5d5984bd02b864b63dcd89926f

3.11 显示下面代码的结果。

7263f5396c3f0af05c38f05365bce15a98eb6ef9
相关文章
|
12天前
|
Python
1167: 分离字符串(PYTHON)
1167: 分离字符串(PYTHON)
|
1月前
|
大数据 Python
使用Python查找字符串中包含的多个元素
本文介绍了Python中查找字符串子串的方法,从基础的`in`关键字到使用循环和条件判断处理多个子串,再到利用正则表达式`re模块`进行复杂模式匹配。文中通过实例展示了如何提取用户信息字符串中的用户名、邮箱和电话号码,并提出了优化策略,如预编译正则表达式和使用生成器处理大数据。
20 1
|
3天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
25 0
|
5天前
|
数据采集 Python
python学习9-字符串
python学习9-字符串
|
12天前
|
Java 索引 Python
Python标准数据类型-字符串常用方法(下)
Python标准数据类型-字符串常用方法(下)
19 1
|
12天前
|
XML 编解码 数据格式
Python标准数据类型-String(字符串)
Python标准数据类型-String(字符串)
23 2
|
12天前
|
安全 数据安全/隐私保护 Python
292: 程序设计C 实验五 题目三 设计密码(python)
292: 程序设计C 实验五 题目三 设计密码(python)
|
12天前
|
Python
171: 字符串的倒序(python)
171: 字符串的倒序(python)
|
29天前
|
JSON C++ 数据格式
【Python 基础教程 08】全面入门到精通:Python3 字符串操作实战教程与深度指南
【Python 基础教程 08】全面入门到精通:Python3 字符串操作实战教程与深度指南
85 0
|
1月前
|
索引 Python
Python 超高频常见字符操作【建议收藏】
Python 超高频常见字符操作【建议收藏】