《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
相关文章
|
17天前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
32 1
|
26天前
|
存储 索引 Python
四:《Python基础语法汇总》— 字符串操作
本篇文章详细讲述了关于如何获取字符串中元素的操作(为了方便大家理解,着重讲述了下标索引与切片),及字符串的常用方法与函数和字符串的运算
15 2
四:《Python基础语法汇总》— 字符串操作
|
18天前
|
Python
python字符串常用操作方法
python字符串常用操作方法
|
18天前
|
数据采集 Python
|
29天前
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
|
15天前
|
UED Python
探索Python中的魔法方法:打造自定义字符串表示
【8月更文挑战第31天】在Python的世界里,魔法方法是那些以双下划线开头和结尾的特殊方法,它们为类提供了丰富的功能。本文将带你走进这些魔法方法的背后,特别是__str__和__repr__,揭示如何通过它们来定制我们的对象在被打印或转换为字符串时的外观。我们将从基础用法开始,逐步深入到高级技巧,包括继承与重写,最终实现一个优雅的字符串表示方案。准备好了吗?让我们开始这段代码之旅吧!
|
16天前
|
索引 Python
如何在 Python 中修改字符串
【8月更文挑战第29天】
11 0
|
17天前
|
Python Windows Perl
python 字符串前加r b u f 含义
python 字符串前加r b u f 含义
22 0
|
17天前
|
Python
Python删除 字符串中的\的方法
这篇文章介绍了如何在Python中使用`replace`方法删除字符串中的特定字符,如制表符(`\t`)、空格(` `)以及其他指定字符,同时指出这种方法返回的是新字符串,不会改变原始字符串。
|
30天前
|
存储 数据安全/隐私保护 索引
Python基础语法day02字符串详解和列表
Python基础语法day02字符串详解和列表