1. 字符串概述
字符串是Python基本数据结构——序列。索引、 切片、 相加、 相乘和成员资格检查等序列通用操作也适用于字符串
2. 字符串相关术语
2.1 转义
让某个符号不再表示某种含义, 而是表示另外一种含义。
2.2 转义符
反斜杠: \
2.3 转义字符
转义字符表示某些字符用常规的方式不能在字符串中表示出来。如 \t、\n等。
2.4 原始字符
每个字符都是原始含义的字符串,声明原始字符则在字符串开始加上字母“r”
>>> path = r"D:\python36" >>> path 'D:\\python36'
2.5 多行字符串
起止是 3 个单引号或 3 个双引号的字符串。在 Python 中,“三重引号” 之间的所有引号、 制表符或换行, 都被认为是字符串的一部分。
3. 格式化字符串
基本思路:对字符串调用方法format,并提供要设置其格式的值。
>>> "The number is {num:f}".format(num=42) 'The number is 42.000000'
4. 字符串常用方法及代码实践(源自《Python编程快速上手 让繁琐工作自动化》)
# (字符串)右对齐打印矩阵.py ''' 编写一个名为 printTable()的函数, 它接受字符串的列表的列表,将它显示在组织良好的表格中, 每列右对齐。 假定所有内层列表都包含同样数目的字符串。例如,该值可能看起来像这样: tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']] 你的 printTable()函数将打印出: apples Alice dogs oranges Bob cats cherries Carol moose banana David goose ''' # 意思是将这个3行4列的嵌套列表中的每列元素(纵向),横向(排列)换行打印出来 # 因为要求打印出来的每列字符(即每个列表中的字符)右对齐,所以要先确定每个列表中的最长字符串长度,再调用右对齐rjust()方法并传入最长字符串的长度 tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']] def printTable(strlist): colWidth = [0]*len(strlist) # 初始化“列宽度”,col即column为列的意思 for i in range(len(strlist)): # 先迭代矩阵长度,即迭代每个列表 for j in range(len(strlist[0])): # 迭代每列,即迭代每个列表长度,此处可用strlist[0],因为是一个矩阵 if len(strlist[i][j]) > colWidth[i]: # strlist[i][j] 即先[1][1],[1][2],[1][3],[1][4],再[2][1]、[2][2]、[2][3]、[2][4],即逐行比较 colWidth[i] = len(tableData[i][j]) count = 0 for i in range(len(strlist[0])): # 先迭代每个列表的元素个数,即将打印出来的行数, for j in range(len(strlist)): # 再迭代矩阵长度,即将打印出来的列数 print(strlist[j][i].rjust(colWidth[j]), end=' ') #仍然取决先迭代的i,即先将先跌代的标量按顺序先迭代完 strlist[j][i] 即先打印[1][1],[2][1],[3][1]再[1][2]、[2][2],[3][2]即横向打印列 count+=1 if count%len(strlist) == 0: print('') if __name__ == '__main__': printTable(tableData)