![Python实战指南:手把手教你掌握300个精彩案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/214/44510214/b_44510214.jpg)
1.1 字符串表达式
案例1 单行文本
导语
单行文本必须包含在一对引号中,既可以使用双引号(""),也可以使用单引号('')。但是,引号一定要前后一致。如果左引号使用了单引号,那么右引号也必须是单引号。
操作流程
步骤1:定义变量text,并把双引号包裹的字符串赋值给它,然后调用print函数将text变量的内容输出到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P18_80003.jpg?sign=1739295521-7mcuD5rt6DlYH9s3GmrgZrd5eDq4w5RE-0-bbfff09e109b7225d6dad3fc448d2d3d)
执行以上代码,屏幕输出内容如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P18_80004.jpg?sign=1739295521-gQBLsCszmUuvtyaVDuJNuDbw8f9tKLbD-0-12f29f5b11c7a5c753f7cad48f422de6)
步骤2:再定义变量text2,并赋值为使用单引号包裹的字符串,然后同样调用print函数将其输出到屏幕。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80006.jpg?sign=1739295521-CcqcCAHvkTLaYp2dnGeQefMBC6BVzibo-0-e7ba01f13f5a18eaebe8fce7ab63bb25)
运行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80007.jpg?sign=1739295521-rpiwbqAZuVwLRNsfSxDLAtzqT1d4WvhJ-0-69b44755a39d71a0734041b0b0e74345)
步骤3:正如以下代码所示,text3和text4变量所赋值的字符串表达式是无效的。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80008.jpg?sign=1739295521-AtSsT3VxSOfL9pO6LvascegbqvLoD0gp-0-5e1230e07046e9e7989c486e4654aa20)
以上两个字符串表达式皆无效,因为包裹字符串的引号前后不一致。
注意:不管选择使用单引号或双引号来修饰字符串对象,这些引号均为英文符号,不能使用中文的引号。
案例2 处理字符串中出现的引号
导语
由于字符串表达式是通过引号来包裹的,因此,如果字符串本身出现引号,就需要进行“回避”,否则编译器将无法对字符串做出正确的解析。
一般有两种处理方案:
· 使用\'或\"来代替。即:当字符串中有单引号时,使用\'来对单引号进行转义;当字符串中有双引号时,用\"来转义。字符被转义后,编译器只会将其视为普通字符处理,不会发生错误。
· 嵌套法(单、双引号交替使用)。如果字符串中有单引号时,就使用一对双引号来包裹它;反过来,要是字符串中有双引号,那就用一对单引号来包裹它。
注意:以上情况只针对字符串中的英文引号,对于中文引号,无论是单引号还是双引号,都不必进行处理,直接输入即可。
操作流程
步骤1:下面代码将转义字符串中的双引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80009.jpg?sign=1739295521-aFNNRCAi4bkZvGlmGtChbhcg5SDcSKAB-0-9399c0a6aa7b98e67c806140eed68d44)
步骤2:同样,单引号也可以进行转义。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80011.jpg?sign=1739295521-qwKqwaDVVH59uP7FmqBfRxfwuK0LH8pS-0-32b6d3c1e4840ea4d00995447c698d1a)
步骤3:如果字符串中含有双引号,可以使用一对单引号来包裹字符串,此时无须转义双引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80012.jpg?sign=1739295521-EPi2ELOcU7bfVjObGR4BVJHMuKAb8fQ7-0-8600a6e8ad6c316d595993502271e415)
步骤4:反之,如果字符串中含有单引号,则可以用一对双引号来包裹,这样就不用对单引号进行转义了。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80013.jpg?sign=1739295521-6iVBxWG66Xp6sBtHbmcB7Haphf0JYxhS-0-af127e93a76e6732e72e8df47ba032de)
步骤5:以上代码运行后,屏幕输出内容如下。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80014.jpg?sign=1739295521-nXDQPQozcFgpIEwXo30498fSxH5VVzSZ-0-0c93585c8f7d5cc84b026bd5e79c9796)
案例3 多行文本
导语
在字符串表达式中使用三重引号,使其成为文本块。文本块支持多行,而且允许任意排版。其格式如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79945.jpg?sign=1739295521-6GaClPBFJjNu3tFfR0mUyqsFYbkFN1tj-0-856ea555dfb88bb08ae70184dbdbaa47)
或者
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79946.jpg?sign=1739295521-ucHoyJc7osLcxnJCDN467iVqb6uIYWLn-0-a3594c61a4b40f0c525bc6f6806a946e)
多行文本一般用于编写代码文档,用于介绍功能与使用方法,可作为代码对象(如模块、函数等)的帮助文档,可以通过对象的__doc__成员读取关联的帮助文档。
操作流程
步骤1:以下代码中,变量mtext为一个使用三重双引号包裹的字符串案例。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79947.jpg?sign=1739295521-qpWbqjMJIqv8v3nNtUV88nfJRns2xVgg-0-104a9198c1aa70a1f394d83efbe15b54)
步骤2:也可以使用三重单引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_79949.jpg?sign=1739295521-OgwHG3VVAQJYvQarpzv9KeANSuxpWYd9-0-b963208c0277bdc829a28f641acf3bff)
步骤3:定义一个Test类,使用多行文本为该类设置帮助文档。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_79950.jpg?sign=1739295521-VC7GkknbKfVc3IEfvzN4rwDdQ75Pd7ZH-0-d71dc41a696935005509a68025efe10d)
pass语句不会执行任何代码,仅仅表示Test类的“空白”——未定义任何新的成员。通常情况下,紧跟在声明语句后的第一个字符串会被作为相关联的帮助文档。例如在上面代码中,紧跟在Test类声明之后的字符串案例将视为此类的帮助文档。
步骤4:随后可以通过访问__doc__成员来获取Test类的文档说明,再调用print函数将其输出到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_80016.jpg?sign=1739295521-HlgLuTCQenM169iKQAVpZiFhlvtAH7qe-0-bfa3039c9cfaf6f0b7bf3f7b6c1db8b7)
__name__可以获得Test类名的字符串表示形式。字符串表达式使用了f前缀,表示对字符串进行格式化处理,其中大括号中的表达式会用其实际的执行结果替换此处的文本内容。例如,__name__成员返回字符串“Test”,此时输出的内容会变为“Test类的帮助文档:……”。
注意:__name__和__doc__成员名称的前缀与后缀都是两个下画线字符(_)。Python中许多特殊成员的命名都会在名称的前面与后面加上双下画线,例如类的构造函数命名为__init__。
步骤5:以上代码执行后,输出内容如下。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P22_79951.jpg?sign=1739295521-kRhgSFuUk77442k7GATdB0pvFYLvd7Nx-0-e0316551abdf4f455bb7efa629d67dbd)