![Python零基础快乐学习之旅(K12实战训练)](https://wfqqreader-1252317822.image.myqcloud.com/cover/749/26542749/b_26542749.jpg)
3-4 字符串数据类型
所谓的字符串(string)数据是指两个单引号(‘’)之间或是两个双引号(“”)之间任意个数符号的数据,它的数据类型代号是str。在英文字符串的使用中常会发生某字中间有单引号,其实这是文字的一部分,如下所示:
This is James’s ball
如果我们用单引号去处理上述字符串将产生错误,如下所示:
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/507.jpg?sign=1739314246-INWa6MJIMWliwI71jv92QFJrNtyIfyLi-0-a96de9646a7d0b5e370c26a545095975)
碰到这种情况,我们可以用双引号解决,如下所示:
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/508.jpg?sign=1739314246-fUpenUTcO1zm5gOYCIelUaOqgj1pEmj9-0-d7516eb4c6146f0313f81df49a28bc3a)
另一种方式是使用逸出字符(Escape Character)方式处理,可以参考3-4-3节。
程序实例ch3_7.py:使用单引号与双引号设置与输出字符串数据的应用。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/509.jpg?sign=1739314246-A0ae4GoWAtNxggsODoyES30bGaTL3zSz-0-c41fba44bd8cb6d7b262143943e58a16)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/510.jpg?sign=1739314246-Fk7sMUO7aWSRoO8fnTmLngLOyG6hRqN4-0-f871eb445afc150360543ffef79b1c9f)
3-4-1 字符串的连接
数学的运算符“+”,可以执行两个字符串相加,产生新的字符串。
程序实例ch3_8.py:字串连接的应用。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/511.jpg?sign=1739314246-wZuuM0Wmn9CHtiJ2evuAYlP2eM1fsJKb-0-520211c5cb33e3b00a56be3020802504)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/512.jpg?sign=1739314246-8t3kiVYNwW9UFMKGBzfV3MJRuDr3ptdH-0-36dbd35cd05e71d6c5d7e4af459f9bd3)
3-4-2 处理多于一行的字符串
程序设计时如果字符串长度多于一行,可以使用3个单引号(或是3个双引号)将字符串包括即可。
程序实例ch3_9.py:使用3个单引号处理多于一行的字符串。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/513.jpg?sign=1739314246-8ZCnwQO24P54ALT8W75Gp6dYyuJyTltM-0-e64d771aee047f941d79220ede17a3e2)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/514.jpg?sign=1739314246-PFXwqPZUy9fmNyAlYaDLz0NcuqjCRKqH-0-12e758fff1a0b982abab9dd9a471519d)
读者可以留意第2行Silicon左边的3个单引号和第3行末端的3个单引号,另外,上述第2行若是少了“str1 =”,3个单引号间的跨行字符串就变成了程序的注释。
3-4-3 逸出字符
在字符串使用中,如果字符串内有一些特殊字符,例如:单引号、双引号等,必须在此特殊字符前加上“\”(反斜杠)才可正常使用,这种含有“\”符号的字符称逸出字符,如下所示。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/725.jpg?sign=1739314246-LfLW4SFTycgPY5lzy4ABsHUBQZg7YCxV-0-6d9b14f40a33ef06c7009e03a3ca97df)
字符串使用中特别是碰到字符串含有单引号时,当使用单引号定义这个字符串时,必须要使用逸出字符,才可以顺利显示,可参考ch3_10.py的第3行。如果使用双引号定义字符串,则可以不必使用逸出字符,可参考ch3_10.py的第6行。
程序实例ch3_10.py:逸出字符的应用,这个程序第9行增加“\t”字符,所以“an’t”跳到下一个Tab键位置输出。同时有“\n”字符,这是换行符号,所以“loving”跳到下一行输出。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/515.jpg?sign=1739314246-5bOLr2k2mSMeVVDTFczCIqdgNANHyStZ-0-279389a241b8751bc3660b1073a70301)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/516.jpg?sign=1739314246-TGLjOkrUzdWhp6YEsUM6OQwkmwCtMHsa-0-19865b1eacf31fbdd99ad03128a8a7f5)
3-4-4 强制转换为字符串str()
str()函数可以强制将数值数据转换为字符串数据。
程序实例ch3_11.py:使用str()函数将数值数据强制转换为字符串的应用。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/517.jpg?sign=1739314246-3H9HXweUdtNMRohZhMNsghVw0fjHsJTA-0-bf13fbd2e027f89caaed0af078c54de4)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/518.jpg?sign=1739314246-TG7AeNEu4Av9DiqD24OkKvCnSQkDWHaz-0-6eec3f2b0251f32c0af9e46063a37677)
上述字符串相加,读者可以想成字符串连接执行结果一个字符串,所以上述执行结果555是数值数据,222333则是一个字符串。
3-4-5 字符数据的转换
如果字符串含一个字符或一个文字时,我们可以使用下列执行数据的转换。
chr(x):可以返回函数x值的字符,x是ASCII码值(可参考附录D)。
ord(x):可以返回函数字符参数x的Unicode码值,如果是中文字也可返回Unicode码值。如果是英文字符,Unicode码值与ASCII码值是一样的。
程序实例ch3_12.py:这个程序首先会将整数97转换成英文字符'a',然后将字符'a'转换成Unicode码值,最后将中文字'魁'转成Unicode码值。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/519.jpg?sign=1739314246-CLpskkI13O7NlQbZvnKYcWBGtcYpiobk-0-f0530bb741ce09324feff7d6e25814cb)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/520.jpg?sign=1739314246-O43yMY2SjPL3pbkBYjgr7h1mohynouuA-0-1652af69ad3332382ed02d16e0d2255e)
3-4-6 聪明地使用字符串加法和换行字符\n
有时设计程序时,想将字符串分行输出,可以使用字符串加法功能,在加法过程中加上换行字符“\n”即可产生字符串分行输出的结果。
程序实例ch3_13.py:将数据分行输出的应用。
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/521.jpg?sign=1739314246-NEXUckIUPPskzobTRpSgIFOWa6sXM0ih-0-5f1d2c5c8e95a402dbc18692fb341ad1)
执行结果
![](https://epubservercos.yuewen.com/5D7EF7/15056703104173006/epubprivate/OEBPS/Images/522.jpg?sign=1739314246-e9Qu3caEoixM5zF29Lk2MF8ueUmlbbrf-0-85b1295497e0af7118ef1100f17ea430)