◎知识点
Python字符串的概述
字符串的创建
转义字符
原始字符串
跨越多行的字符串
◎脚本练习
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @FileName: string_def.py @Function: string definition @Author: Zhihe An @Site: https://chegva.com @Time: 2021/6/23 """ """一、字符串的概述""" """ 1、什么是字符串? 在程序中,文本内容用字符串来表示 字符串由一系列有序的字符组成 例如:'HelloWorld','PythonLanguage' 字符串与列表和元组一样,都属于序列类型 可以将字符串看作是字符的列表,列表的很多操作对于字符串也是适用的 没有单独的字符类型,字符就是只包含一个元素的字符串,例如:'a'、'b'、'c' """ """二、字符串的创建""" """ 创建字符串的两种方式: 1、使用引号 创建字符串时既可以使用单引号,也可以使用双引号,通常使用单引号 当把字符串赋值给变量时,变量名不要取名为str,因为str是字符串对应的类名 """ """ >>> s = 'abcd' >>> s 'abcd' >>> s = "abcd" >>> s 'abcd' # 空字符串 >>> '' '' >>> "" '' """ """ 可以在单引号中使用双引号,也可以在双引号中使用单引号 >>> 'abc"def"' 'abc"def"' >>> "abc'def'" "abc'def'" """ """ 不能在单引号中使用单引号,也不能在双引号中使用双引号 # 本来想要打印字符串abc'def',结果前两个单引号进行了匹配 >>> 'abc'def'' File "<stdin>", line 1 'abc'def'' ^ SyntaxError: invalid syntax # 本来想要打印字符串abc"def",结果前两个双引号进行了匹配 >>> "abc"def"" File "<stdin>", line 1 "abc"def"" ^ SyntaxError: invalid syntax """ """ 2、调用内置函数str(类str的构造方法) >>> str('abcd') 'abcd' >>> str("abcd") 'abcd' >>> str(123) '123' >>> str(12.3) '12.3' # 空字符串 >>> str() '' """ """三、转义字符""" """ 1、使用转义字符表示无法直接表示的特殊字符 当字符串中包含换行、回车、水平制表符或退格等无法直接表示的特殊字符时,该如何表示呢? (1) 换行:newline,光标移动到下一行的开头 (2) 回车:return,光标移动到本行的开头 (3) 水平制表符:键盘上的tab键,光标移动到下一组4个空格的开始处 (4) 退格:键盘backspace键,回退一个字符 可以使用如下转义字符: 换行:\n 回车:\r 水平制表符:\t 退格:\b """ print('abc\ndef') print('abc\rdef') # def print('123456\t123\t45') # 123456 123 45 print('abc\bdef') # abdef """ 2、使用转义字符表示在字符串中有特殊用途的字符 某些字符在字符串中有特殊用途,比如:反斜杠用于转义,单引号和双引号用于字符串的边界 因此,不能在字符串中直接包含这些有特殊用途的字符 """ # 本来想要打印字符串'abc\rdef',结果反斜杠用于转义了 print('abc\rdef') # def # 本来想要打印字符串'abc'def'',结果前两个单引号进行了匹配 # print('abc'def') # 本来想要打印字符串'abc'def'',结果前两个双引号进行了匹配 # print("abc"def"") """ 当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义 反斜杠:\\ 单引号:\' 双引号:\" """ print('abc\\rdef') # abc\rdef print('abc\'def\'') # abc'def' print("abc\"def\"") # abc"def" """四、原始字始符""" """ 1、如果不想让字符串中的转义字符生效,可以在字符串的前面添加r或R,从而将字符串声明为原始字符串 """ print(r'\tC:\\Program Files') # \tC:\\Program Files print(R'\tC:\\Program Files') # \tC:\\Program Files """ 2、原始字符串的最后一个字符不能是反斜杠(最后两个字符都是反斜杠除外) """ # print(r'HelloWorld\') # SyntaxError: EOL while scanning string literal print(r'HelloWorld\\') # HelloWorld\\ # 解释器不会把r'What\'看做是一个原始字符串,因为原始字符串不能以反斜杠结尾 print(r'What\'s your name') # What\'s your name # 解释器不会把r'What\\'看做是一个原始字符串,因为原始字符串可以以两个反斜杠结尾 # print(r'What\\'s your name') # What\'s your name """五、跨越多行的字符串""" """ 如果想让字符串跨越多行,常见的方式有两种: 1、使用三个引号 """ print('''我是一个 跨越多行的 字符串''') print("""我是一个 跨越多行的 字符串""") # 在三个引号中既可以包含单引号,也可以包含双引号 print('''我是一个 '跨越多行'的 "字符"串''') print("""我是一个 '跨越多行'的 "字符"串""") # 可以在三个单引号中嵌套三个双引号,也可以在三个双引号中嵌套三个单引号 print('''我是一个 """跨越多行"""的 字符串''') print("""我是一个 '''跨越多行'''的 字符串""") """ 2、在每行的结尾添加\ """ print('我是一个\ 跨越多行的\ 字符串')