上一篇:Day2:Python基础(一)——内置类型之 数字类型(int, bool, float, complex)
在本章节中,我们将学习Python的 文本序列类型 也就是 字符串 str 进行学习 。顾名思义,之所以叫叫文本序列类型,首先其内容是 文本 ,其次它是 有序 的一系列元素,故而称之为 序列 。接下来,我们会学习字符串的 字面量 、特点 、访问方式 及常用的方法。
完整的词法定义如下:(摘自Python官方文档)
stringliteral ::= [stringprefix](shortstring | longstring)
stringprefix ::= "r" | "u" | "R" | "U" | "f" | "F"
| "fr" | "Fr" | "fR" | "FR" | "rf" | "rF" | "Rf" | "RF"
shortstring ::= "'" shortstringitem* "'" | '"' shortstringitem* '"'
longstring ::= "'''" longstringitem* "'''" | '"""' longstringitem* '"""'
shortstringitem ::= shortstringchar | stringescapeseq
longstringitem ::= longstringchar | stringescapeseq
shortstringchar ::= <any source character except "\" or newline or the quote>
longstringchar ::= <any source character except "\">
stringescapeseq ::= "\" <any source character>
解释一下,定义大致的意思就是说,一个字符串字面量可以有一个前缀(可选),然后是短字符串(单行文本)或长字符串(多行文本)的内容。其中短字符串由' '或者" " 作为内容的容器,长字符串则是由''' '''或者""" """来作为内容的容器,容器中的内容可以是普通字符(即除了 \、换行、字符串结束符的字符)或者转义序列(如\n换行符)
形如以下形式:
s1 = 'hello' # print会输出hello
s2 = "hello" # print会输出hello
s3 = 'I\'m fine' # print会输出I'm fine
s4 = "He said \"hi\"" # print会输出He said "hi"
s5 = '''
hello
world
''' # print会原样输出
s6 = """
line1
line2
""" # print会原样输出
通过索引访问:格式为 str[index],其中 str 为字符串或其引用, index 即为索引,字符的第一个元素索引为 0
下方为索引访问实例:
str1 = 'Hello,World!'
print(str1[1]) # 输出e,即第二个字符
print(str1[-1]) # 输出!,即倒数第一个字符
下方为切片访问实例:
str1 = 'Hello,World!'
print(str1[0:5:1]) # 输出Hello
print(str1[::]) # 输出原字符串,即Hello,World!
print(str1[::-1]) # 输出!dlroW,olleH,相当于将源字符串进行倒置
print(str1[::2]) # 输出HloWrd,即每两个字符才读取一次元素
str1 = 'Hello,'
str2 = 'World!'
print(str1 + str2) # 输出Hello,World!
str1 = '='
print(str1 * 20) 输出====================,可以作为分割线使用
str1 = r"C:\new\test" # 相当于"C:\\new\\test"
print(str1) # 输出C:\new\test
stu_name = 'Welt'
stu_gender = '男'
print(f'我叫{stu_name},是{stu_gender}性') # 输出:我叫Welt,是男性
stu_name = 'Welt'
stu_gender = '男'
show = '我叫%s,是%s性' % (stu_name, stu_gender) # %占位格式输出
print(show) # 输出:我叫Welt,是男性
souce_str = 'Welt'
fillchar = '='
width = 20
ljust_str = souce_str.ljust(20,fillchar)
rjust_str = souce_str.rjust(20,fillchar)
center_str = souce_str.center(20,fillchar)
print('''
----%s----
----%s----
----%s----
''' % (ljust_str, rjust_str, center_str)
)
# 输出为
# ----Welt================----
# ----================Welt----
# ----========Welt========----
souce_str = 'I\'m Welt and who are you'
dest_list = souce_str.split(' ') # 用空格作为分隔符
print(dest_list) # 输出为["I'm", 'Welt', 'and', 'who', 'are', 'you']
如果在实际中有相应需求,更多的方法和操作可以在Python官方文档中进行查询。
本章中我们了解了什么是字符串,字符串有哪些特点,有哪些访问字符串的方式以及字符串常见的运算及方法,重点在于理解字符串的特点,至于运算及方法可以通过文档查看。