Python字符串

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)

 

 

posted @ 2021-04-18 11:38  thoustree  阅读(122)  评论(0编辑  收藏  举报
返回顶部