美文网首页Python程序员
Python 简明教程 --- 7,Python 字符串

Python 简明教程 --- 7,Python 字符串

作者: 码农充电站pro | 来源:发表于2020-12-10 13:18 被阅读0次

    过早的优化代码是罪恶之源。
    —— Donald Knuth

    目录

    无论哪种编程语言,字符串处理都是最重要的内容之一。当然,Python 也不例外。

    1,Python 字符串

    这节内容中,我们已经知道了Python 字符串是用以下引号引住的一串字符:

    • 单引号''
    • 双引号""
    • 三单引号'''
    • 三双引号"""

    Python3 中的字符串类型统一采用Unicode 编码,因此支持多种语言。

    我们这里介绍的字符串类型,指的是<class 'str'>

    >>> type('中国')
    <class 'str'>
    >>> type('abc')
    <class 'str'>
    

    2,常用转义字符

    在用到某些特殊字符时,需要用到转义字符----反斜杠\

    下表是Python 中的一些常用转义字符:

    转义字符 含义
    \\ 反斜杠
    \' 单引号
    \" 双引号
    \n 换行
    \r 回车
    \t 横向制表符

    3,字符串长度

    使用len() 函数可以获取字符串的长度

    >>> len('Hello') # 一个英文字符的长度是 1
    5
    >>> len('Hi')
    2
    >>> len('Python')
    6
    >>> len('中国')   # 一个中文字符的长度是 1
    2
    

    4,截取字符串

    在Python 中可以用中括号[]来截取字符串内容。

    获取单个字符

    通过下标获取字符串中的单个字符,语法格式如下:

    s[n]
    

    其中s 是一个字符串变量,n 为下标,是一个整数,其取值范围为:

    -len(s)<=n<=len(s)-1
    
    • -len(s)<=n<0:从右往左数,取第n 个字符
    • 0<=n<=len(s)-1:从左往右数,取第n+1 个字符

    图解:

    示例:

    >>> s = 'Hello' # 字符换变量 s
    >>> len(s)      # s 的长度
    5               # 下标n 的范围为 -5<=n<=4
    >>> s[-6]       # 超出取值范围,报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: string index out of range
    >>> s[-5]       # 取倒数第5 个字符
    'H'
    >>> s[-1]       # 取倒数第1 个字符
    'o'
    >>> s[0]        # 取第1 个字符
    'H'
    >>> s[4]        # 取最后一个字符
    'o'
    >>> s[5]        # 超出取值范围,报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: string index out of range
    

    获取部分字符

    获取部分字符串的语法格式如下:

    s[m:n]
    

    其中s 是一个字符串变量,mn 可以是任意的整数。

    s[m:n] 代表的含义是:获取字符串s 下标mn 之间的子串,子串的值包含s[m],而不包含s[n],即遵循左闭右开原则。

    图解:

    示例:

    >>> s = 'Hello'
    >>> s[-5:1] 
    'H'
    >>> s[-7:2]
    'He'
    >>> s[-3:2]
    ''
    >>> s[0:3]
    'Hel'
    >>> s[3:1]
    ''
    >>> s[3:-1]
    'l'
    

    m 和 n 都可不写

    • 如果不写m,代表从最左边开始
    • 如果不写n,代表到最右边结束

    示例:

    >>> s = 'Hello'
    >>> s[:]        # m 和 n 都不写代表整个字符串
    'Hello'  
    >>> s[:3]       # 不写 m,代表从最左边开始,直到下标 n
    'Hel'
    >>> s[2:]       # 不写 n,代表从下标 m开始,直到最右边
    'llo'
    

    5,字符串连接

    加号+ 运算符可以连接两个字符串

    >>> 'abc' + '123'
    'abc123'
    >>> 'Hi' + '你好'
    'Hi你好'
    

    6,重复字符串

    一个字符串 乘一个整数n,相当于n 个字符串相连:

    >>> 'a' * 5
    'aaaaa'
    >>> 'abc' * 3
    'abcabcabc'
    >>> '你好' * 2
    '你好你好'
    

    7,字符串包含

    运算符in

    in 在Python 中是一个运算符,可用于判断一个子串是否包含在一个字符串中:

    >>> 'a' in 'abc'
    True
    >>> 'ab' in 'abc'
    True
    >>> 'ad' in 'abc'
    False
    

    运算符not in

    not inin 的反义,用于判断一个子串是否不包含在一个字符串中:

    >>> 'a' not in 'abc'
    False
    >>> 'ab' not in 'abc'
    False
    >>> 'ad' not in 'abc'
    True
    

    8,字符串格式化

    Python 字符串支持多种数据类型的格式化,字符串格式化符号见下表:

    符号 含义
    %c 格式化字符
    %s 格式化字符串
    %d 格式化整数
    %o 格式化八进制数
    %x/%X 格式化十六进制数,后者为大写
    %f 格式化浮点数
    %e 用科学计数法格式化浮点数

    示例:

    >>> '%c' % 'a'  # 格式化字符
    'a'
    >>> '%c' % 'B'  # 格式化字符
    'B'
    >>> '%s' % '中国' # 格式化字符串
    '中国' 
    >>> '%s' % 'abc' # 格式化字符串
    'abc'
    >>> '%s' % 123   # 数字类型也可格式化为字符串
    '123'
    >>> '%d' % 12345 # 格式化数字
    '12345'
    >>> '%o' % 8     # 格式化八进制数字
    '10'
    >>> '%o' % 9     # 格式化八进制数字
    '11'
    >>> '%x' % 10    # 格式化十六进制数字,小写
    'a'
    >>> '%x' % 11    # 格式化十六进制数字,小写
    'b'
    >>> '%X' % 10    # 格式化十六进制数字,大写
    'A' 
    >>> '%X' % 11    # 格式化十六进制数字,大写
    'B'
    >>> '%f' % 123.123 # 格式化浮点数
    '123.123000'
    >>> '%e' % 123.123 # 科学计数法格式化浮点数
    '1.231230e+02'
    

    宽度与小数点位数

    每种格式化符号之前都可以添加m.n

    • mn 都是正整数
    • m 表示格式化的宽度,对于浮点数无效
    • n 表示小数点后的位数,只对浮点数有效

    示例:

    >>> '%4s' % 'abc'   # 总宽度为 4
    ' abc'              # 'abc' 之前有 1 个空格
    >>> '%5s' % 'abc'   # 总宽度为 5
    '  abc'             # 'abc' 之前有 2 个空格
    >>> '%5d' % 100     # 总宽度为 5
    '  100'             # 100 之前有 2 个空格
    >>> '%.5d' % 100    # 总宽度为 5,注意 5 之前有个点
    '00100'             # 宽度不够用 0 补齐,所以 100 之前有 2 个 0
    >>> '%.2f' % 100.123    # 小数点后保留 2 位,多余位数舍弃
    '100.12'
    >>> '%.5f' % 100.123    # 小数点后保留 5 位,位数不够,用 0 补齐
    '100.12300'
    

    左对齐与右对齐

    默认情况下,宽度 不够时,会在左边加空格,这是右对齐

    >>> '%5s' % 'abc'  # 宽度为 5,不够用空格补齐,右对齐
    '  abc'
    

    可在数字5 之前添加一个负号-宽度 不够时,会在右边加空格,这是左对齐

    >>> '%-5s' % 'abc' # 宽度为 5,不够用空格补齐,左对齐
    'abc  '
    

    (完。)


    推荐阅读:

    Python 简明教程 --- 2,第一个Python 程序
    Python 简明教程 --- 3,Python 基础概念
    Python 简明教程 --- 4,Python 变量与基本数据类型
    Python 简明教程 --- 5,Python 表达式与运算符
    Python 简明教程 --- 6,Python 控制流

    相关文章

      网友评论

        本文标题:Python 简明教程 --- 7,Python 字符串

        本文链接:https://www.haomeiwen.com/subject/kqrvwktx.html