![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=1738872999-GFr7xCJ9rgwv16W0dWjFxCEAqMD6SGPO-0-c80b764d3d9ab97711965ad44a4c1b50)
执行以上代码,屏幕输出内容如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P18_80004.jpg?sign=1738872999-Pajl6OzSGZ6RiicJYNNhSdhnKONCCBmO-0-1e798af8422873f49d7e6b98d5808b51)
步骤2:再定义变量text2,并赋值为使用单引号包裹的字符串,然后同样调用print函数将其输出到屏幕。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80006.jpg?sign=1738872999-A744VMJSRUYqSUJWF37BfN1E9IhW7cTb-0-61a8f5eeeecb51699d2de6a3e0181389)
运行结果如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80007.jpg?sign=1738872999-LByRaM48hj2wy7B7MBNHAtxVaQ1a2kVH-0-60c9e435e5575dc62cca536d95a6b2d5)
步骤3:正如以下代码所示,text3和text4变量所赋值的字符串表达式是无效的。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80008.jpg?sign=1738872999-YtpHMQQQyOEndVxpD8WHfYB9ranaJOyZ-0-1edbb3159367d318a03bfdb8717167d6)
以上两个字符串表达式皆无效,因为包裹字符串的引号前后不一致。
注意:不管选择使用单引号或双引号来修饰字符串对象,这些引号均为英文符号,不能使用中文的引号。
案例2 处理字符串中出现的引号
导语
由于字符串表达式是通过引号来包裹的,因此,如果字符串本身出现引号,就需要进行“回避”,否则编译器将无法对字符串做出正确的解析。
一般有两种处理方案:
· 使用\'或\"来代替。即:当字符串中有单引号时,使用\'来对单引号进行转义;当字符串中有双引号时,用\"来转义。字符被转义后,编译器只会将其视为普通字符处理,不会发生错误。
· 嵌套法(单、双引号交替使用)。如果字符串中有单引号时,就使用一对双引号来包裹它;反过来,要是字符串中有双引号,那就用一对单引号来包裹它。
注意:以上情况只针对字符串中的英文引号,对于中文引号,无论是单引号还是双引号,都不必进行处理,直接输入即可。
操作流程
步骤1:下面代码将转义字符串中的双引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P19_80009.jpg?sign=1738872999-SR7imAPvlPoa8P1NawLjUUCkip2aiZRr-0-1dc41ee0581f817e9a45aabe07b47458)
步骤2:同样,单引号也可以进行转义。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80011.jpg?sign=1738872999-I8AGwcPrvINuxLWSqwBAgQbgiJfFHQyP-0-234680fad6063fa21835e47c5665d17a)
步骤3:如果字符串中含有双引号,可以使用一对单引号来包裹字符串,此时无须转义双引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80012.jpg?sign=1738872999-m4JSTXJyzufb5V9owb8ignmSCwCh9LTn-0-3b16d77505b4ecf3080c8fd1fd3f2a2d)
步骤4:反之,如果字符串中含有单引号,则可以用一对双引号来包裹,这样就不用对单引号进行转义了。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80013.jpg?sign=1738872999-3hPpQp9QojECkr5APlmVgBSkHoKh6gSN-0-7a2447967bba06972a08c78f35ba30ae)
步骤5:以上代码运行后,屏幕输出内容如下。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_80014.jpg?sign=1738872999-yyGB4waQeKY33nwthOHlPOAKH9fTp0Gd-0-c7142f14e1f271740fce9a30ad5d5018)
案例3 多行文本
导语
在字符串表达式中使用三重引号,使其成为文本块。文本块支持多行,而且允许任意排版。其格式如下:
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79945.jpg?sign=1738872999-tm2asQfsWda3K1yZcZux8wyEJrtRSe31-0-3d97e148d4aa913f2939b88158684e6b)
或者
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79946.jpg?sign=1738872999-IRSvl1eT8Sp3CIOwwsVYEBuIwkEk5cf0-0-6699d88a7f87ad312f4bab59b326cfd0)
多行文本一般用于编写代码文档,用于介绍功能与使用方法,可作为代码对象(如模块、函数等)的帮助文档,可以通过对象的__doc__成员读取关联的帮助文档。
操作流程
步骤1:以下代码中,变量mtext为一个使用三重双引号包裹的字符串案例。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P20_79947.jpg?sign=1738872999-PA3uuNWyuEh5FRMOnE2wCdKXzxmxupVX-0-a8fd8f02fcdb55f9e945e1f0b954f3ff)
步骤2:也可以使用三重单引号。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_79949.jpg?sign=1738872999-62JvArjQlx9SX5vSI5BMHUdi1sfjnWff-0-ba802e84bfce6520700ba4a5e986e5b6)
步骤3:定义一个Test类,使用多行文本为该类设置帮助文档。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_79950.jpg?sign=1738872999-yaRdeo2iu5JnbNX7oWTHPTogsinOU0Dt-0-5c18d2410c879876ca1fc3fb02a2468c)
pass语句不会执行任何代码,仅仅表示Test类的“空白”——未定义任何新的成员。通常情况下,紧跟在声明语句后的第一个字符串会被作为相关联的帮助文档。例如在上面代码中,紧跟在Test类声明之后的字符串案例将视为此类的帮助文档。
步骤4:随后可以通过访问__doc__成员来获取Test类的文档说明,再调用print函数将其输出到屏幕上。
![](https://epubservercos.yuewen.com/1C5115/23721740309681106/epubprivate/OEBPS/Images/Figure-P21_80016.jpg?sign=1738872999-qwIsRIERQ2yPUh7L36yMEyI6tDMsrCyo-0-97ae9ffe9251caedc7b28341c42ae9e6)
__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=1738872999-p6vNFJvEWNAAE8W32hD8GLk9isjtXPMG-0-860f6aa369f0d49741003863cc6e5777)