zoukankan      html  css  js  c++  java
  • day2-字符串

    在Python中字符串本身带有很多操作,字符串的特性:不可被修改

    1. 字符串的定义

    >>> name = '' #空字符串
    >>> name = "loutao"  #定义非空字符串
    >>> name
    'loutao'
    >>> name[1]  #通过小标访问字符串
    'o'
    >>> name[2] = 's'  #字符串的值不能被修改,否则会报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment

    2. 切片

    字符串和列表,元组一样,都是可以切片的

    View Code

    3. 首字母大写(capitalize())

    >>> name
    'lou tao'
    >>> name.capitalize()
    'Lou tao'

    4. 统计(count(sub,start=None,end=None))

    sub:统计的字符,start:开始位,end: 结束位,start和end默认为空时,则表示从全部字符中统计

    >>> name
    'lou tao'
    >>> name.capitalize()
    'Lou tao'
    >>> name.count('o')
    2
    >>> name.count('o',1,5)
    1

    5. center(width,fillchar),ljust(width,fillchar),rjust(width,fillchar)

    如果width (字符宽度) 小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串,则用fillchar字符填充

    Python中打印字符串时可以调用ljust(左对齐),rjust(右对齐),center(中间对齐)来输出整齐美观的字符串,使用起来非常简单,包括使用第二个参数填充(默认为空格)

    >>> print('|','*'.ljust(10),'|')
    | *          |
    >>> print('|','*'.ljust(10,'-'),'|')
    | *--------- |
    >>> print('|','*'.rjust(10,'-'),'|')
    | ---------* |
    >>> print('|','*'.center(10,'-'),'|')
    | ----*----- |
    >>> for a in range(1,6):
    ...     print('a ='.ljust(5),repr(a).ljust(10),'b ='.ljust(5),repr(a * 2))
    ... 
    a =   1          b =   2
    a =   2          b =   4
    a =   3          b =   6
    a =   4          b =   8
    a =   5          b =   10

    6. 编码(encode)

    字符串的编码与解码 ;点击详情:py编码终极版

    7. endwith(suffix,start=None,end=None),startswith(prefix, start=None,end=None)

    判断是否已suffix结尾,是返回True, 否返回Fales;判断是否已prefix开始,是返回True,否返回Fales

    suffix: 表示字符或者字符串,start: 开始位,end: 结束位,start和end默认为空,表示从整个字符串的结尾去判断

    prefix: 表示字符或者字符串,start: 开始位,end: 结束位,start和end默认为空,表示从整个字符串的开头去判断

    >>> name
    'lou tao'
    >>> name.endswith('o') # 结尾找到"o" 字符
    True
    >>> name.endswith('o',1,4) # 在索引1到4之间没有找到以"o"字符结尾
    False
    >>> name = "lou tao"
    >>> name.startswith('l') #开头找到"l" 字符
    True
    >>> name.startswith('lou') #开头找到"lou" 字符串
    True
    >>> name.startswith('lou',0,2) # 在索引0到2之间没有找到以"lou"字符串开头
    False

    8. find(sub,start=None,end=None)

    全文查找字符或字符串sub,找到则返回其第一个字符的索引,找不到则返回-1

    sub: 字符串或者字符, start:开始位,end: 结束位,start和end默认为空时,在整个字符串中查找

    >>> name
    'lou tao'
    >>> name.find('t')
    4
    >>> name.find('ta')
    4
    >>> name.find('ta',2)
    4
    >>> name.find('ta',1,2)
    -1

    9,rfind(sub,start=None,end=None)

    从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

    >>> name
    'lou tao'
    >>> name.rfind('t')
    4
    >>> name.rfind('t',2)
    4
    >>> name.rfind('t',1,2)
    -1

    10. format()

    详细信息参考:这里

    format :
        >>> msg = "my name is {}, and age is {}"
        >>> msg.format("alex",22)
        'my name is alex, and age is 22'
        >>> msg = "my name is {1}, and age is {0}"
        >>> msg.format("alex",22)
        'my name is 22, and age is alex'
        >>> msg = "my name is {name}, and age is {age}"
        >>> msg.format(age=22,name="ale")
        'my name is ale, and age is 22'

    11. format_map()

    数据格式,以字典形式传入

       >>> msg = "my name is {name}, and age is {age}"
       >>> msg.format_map({'name':'alex','age':22})
       'my name is alex, and age is 22'

    12. isalnum()

    判断是否是一个阿拉伯数字和字母,中间不能有特殊字符

    >>> age = '23'
    >>> age.isalnum()
    True
    >>> age = '2.3'
    >>> age.isalnum()
    False
    >>> age = '23ab'
    >>> age.isalnum()
    True
    >>> age = 'ab'
    >>> age.isalnum()
    True

    13. isalpha()

    判断是否是一个纯英文字符,包含大写

    >>> age = 'ab'
    >>> age.isalpha()
    True
    >>> age = 'Ab'
    >>> age.isalpha()
    True
    >>> age = 'Ab23'
    >>> age.isalpha()
    False

    14. isdigit()

    判断是否是一个整数

    >>> a = '9'
    >>> a.isdigit()
    True
    >>> a = '9.9'
    >>> a.isdigit()
    False

    15. isspace()

    判断是否是一个空格

    >>> a = ' ab'
    >>> a.isspace()
    False
    >>> a = ' '
    >>> a.isspace()
    True

    16. istitle()

    是否是一个标题(字符串中的每个单词的首字母大写)

    >>> name = "Lou Tao"
    >>> name.istitle()
    True
    >>> name = "Lou tao"
    >>> name.istitle()
    False

    17. isupper()

    是否是大写,注意字符串必须全部是大写才会返回True, 否则返回False

    >>> name = "LOUTAO"
    >>> name.isupper()
    True
    >>> name = "loutao"
    >>> name.isupper()
    False

    18. islower()

    是否是小写,注意字符串必须全部是小写才会返回True, 否则返回False

    >>> name = "loutao"
    >>> name.islower()
    True
    >>> name = "LOUtao"
    >>> name.islower()
    False

    19. isidentifier()

    检测一段字符串可否被当作标志符,即是否符合变量名规范

    >>> b = "defefdfd_df"
    >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
    True

    19. join()

    序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型

    >>> a = ['1','2','3']
    >>> '|'.join(a)
    '1|2|3'
    >>> a = [1,2,3]
    >>> '|'.join(a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: sequence item 0: expected str instance, int found

    20. lower(),upper()

    lower: 字符串中的大写字母 转换为小写字母,upper: 字符串中的小写字母转换为大写字母

    >>> name = "LouTao"
    >>> name.lower() #大写字母转换为小写字母
    'loutao'
    >>> name.upper() #小写字母转换为大写字母
    'LOUTAO'

    21. strip(),lstrip(),rstrip()

    Python 中的strip用于去除字符串的首尾字符(默认为空格和换行符 ),同理,lstrip用于去除左边的字符,rstrip用于去除右边的字符。这三个函数都可传入一个参数,指定要去除的首尾字符。注意的是,传入的是一个字符数组,编译器去除两端所有相应字符,直到没有匹配的字符。

    >>> str = "   
    loutao    
    "
    >>> str.strip()
    'loutao'
    >>> str.rstrip()
    '   
    loutao'
    >>> str.lstrip()
    'loutao    
    '
    >>> str = "saaaay yes no yaaaass"
    >>> str.strip('say')  #str依次被去除首尾在['s','a','y']数组内的字符,直到字符不在数组内。所以,输出的结果为:yes no
    ' yes no '
    >>> str.strip('say ') #say后有空格
    'es no'
    >>> str.lstrip('say')
    ' yes no yaaaass'
    >>> str.rstrip('say')
    'saaaay yes no '

    22. split()

    分割函数,默认以空格分隔生成一个列表,如果使用其他字符分割,输入其他字符参数

    >>> name = "lou tao"
    >>> name.split()  #默认为空,按空格分割
    ['lou', 'tao']
    >>> name = "lou
    tao" 
    >>> name.split('
    ') #以 
    分割
    ['lou', 'tao']

    23. splitlines()

    以换行分割,这个一般在windows上开发,移动到linux上执行,或者在linux上开发,移到windows上执行,因为换行在windows上是" ",在linux上是" "

    >>> name = "lou
    tao"
    >>> name.splitlines()
    ['lou', 'tao']

    24. swapcase()

    把大写换成小写,把小写换成大写

    >>> name = "LouTao"
    >>> name.swapcase()
    'lOUtAO'

    25. replace(old,new[, max])

    old: 旧字符串;new: 新字符串,用于替换old字符串;max可选字符串,替换不超过max次

    >>> name = "Success is the sum of small efforts, repeated day in and day out"
    >>> name.replace('is','was')
    'Success was the sum of small efforts, repeated day in and day out'
    >>> name.replace('is','was',0)  #原字符串没有改变
    'Success is the sum of small efforts, repeated day in and day out'
    >>> name.replace('is','was',1)
    'Success was the sum of small efforts, repeated day in and day out'

    26. zfill(width)

    字符的长度是否大于等于(>=)width,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串

    >>> name = "loutao"
    >>> len(name)
    6
    >>> name.zfill(10) #width 大于字符串长度
    '0000loutao'
    >>> name.zfill(6) #width小于等于字符串长度
    'loutao'
  • 相关阅读:
    《入门经典》——6.15
    《Linear Algebra and Its Application》-chaper1-行化简法解决线性方程组
    《算法实战策略》-chaper19-队列、栈和双端队列
    《Linear Algebra and Its Applications》-chaper1-向量方程、矩阵方程和线性方程组
    辛普森法则
    《训练指南》——6.15
    《入门经典》——6.21
    《算法问题实战策略》-chaper13-数值分析
    Scheme 中的 pair 和 list 简述
    C. Friends
  • 原文地址:https://www.cnblogs.com/Easonlou/p/8128056.html
Copyright © 2011-2022 走看看