zoukankan      html  css  js  c++  java
  • [ Python入门教程 ] Python字符串数据类型及基本操作

        字符串是Python的一种基本类型,字符串的操作包括字符串格式化输出、字符串的截取、合并,字符串的查找和替换等操作。

    字符串定义

        Python中有3种表示字符串的方法:单引号、双引号、三引号。引号使用说明:

        (1)单引号和双引号作用相同,如果字符串中包含单引号,可以使用双引号表示,若字符串中包含双新号,可以使用单引号表示。

        (2)三引号中可以包含单引号、双引号或换行字符;

        (3)如果字符串中包含特殊字符,使用转义字符。

    Str = "Python"
    Str = 'Python'
    Str = '''he say "Hello Python"'''
    Str = 'he say "Hello Python"'
    Str = "he say "Hello Python""

    字符串格式化

    "%s" % str1 #元素格式化字符串
    "%s %s" % (str1, str2)
    "%(name)s %(age)d "%{'name':'Zhangsan','age':20} #字典格式化字符串用法

      常用的格式化字符串替代符号

    %s 格式化字符串
    %d 格式化整型
    %f 格式化浮点数字,可指定小数点后的精度

      实例

    print "%s %s %.2f" % ('Zhangsan', 20,20000.33)
    print "%(name)s %(age)d %(Salary).2f"%{'name':'Zhangsan','age':20, 'Salary':20000.33}

      如果需要对齐输出,可以使用如下函数

    str.center(width) #返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
    str.ljust(width) #返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
    str.rjust(width) #返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

      实例

    >>> Str = "Python"
    >>> print Str.center(15)
         Python
    >>> print Str.center(15, "*")
    *****Python****
    >>> print Str.ljust(15)
    Python
    >>> print Str.rjust(15)
             Python

    字符串判断

    Str.startswith(substring, [,start [,end]]) #判断字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False
    Str.endswith(substring, [,start [,end]]) #判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False
    Str.isalnum() #如果str是否全部为数字或字母,是则返回True,否则返回False
    Str.isalpha() #判断str是否全部为字母,是则返回True,否则返回 False
    Str.isdecimal() #判断str是否只包含十进制数字,是则返回True 否则返回False.
    Str.isdigit() #判断str是否只包含数字,是则返回True 否则返回False.
    Str.islower() #判断str是否全部为小写字符,是则返回True,否则返回False
    Str.isnumeric() #判断str是否全部为数字字符,是则返回True,否则返回False
    Str.isspace() #判断str是否只包含空格,是则返回True,否则返回 False.
    Str.istitle() #判断str是标题化的,是则返回True,否则返回False
    Str.isupper() #判断str是否全部为大写字符,是则返回True,否则返回False

      实例

    >>> Str = "Python.py"
    >>> Str.endswith('.py')
    True
    >>> Str.startswith('Py')
    True

    字符串合并

      字符串的拼接打印或给新变量赋值有如下几种方式,但是建议常用+号或者%格式化方式完成。具体描述及实例说明如下:

    str1+str2 #利用+号拼接字符串输出
    str1,str2 #以逗号","拼接字符串,字符串间以空格分隔
    str1str2  #直接放置一起拼接字符串
    str1 str2 #以空格相隔拼接,输出也是直接拼接字符串。
    '%s %s %' % (str1,str2) #以%拼接字符串。
    sep.join([str1,str2]) #利用join拼接字符串,sep是分割符。

      实例1(正常处理)

    >>> Str = 'Python'+ '|' + 'Java' + '|' + 'Shell' 最常用的形式,建议使用
    >>> print Str
    Python|Java|Shell
    
    >>> Str = 'Python', '|', 'Java', '|', 'Shell' 注意:输出元组形式('Python', '|', 'Java', '|', 'Shell')
    >>> print Str
    ('Python', '|', 'Java', '|', 'Shell')
    
    >>> Str = 'Python''|''Java''|''Shell' 直接拼接
    >>> print Str
    Python|Java|Shell
    
    >>> Str = 'Python' '|' 'Java' '|' 'Shell' 和上述一致
    >>> print Str
    Python|Java|Shell
    
    >>> Str = 'Buy %s books cost %d RMB' % ('Python', 100)
    >>> print Str
    Buy Python books cost 100 RMB
    
    >>> Str = '|'.join(['Python', 'Java','Shell'])
    >>> print Str
    Python|Java|Shell

      实例2(包含变量的拼接处理)

    >>> Str1 = "Python"
    >>> Str2 = Str1 "Java"
      File "<stdin>", line 1
        Str2 = Str1 "Java"
                         ^
    SyntaxError: invalid syntax

    字符串截取

    str[start : end : step]

      实例

    Str = "0123456789"
    Str[1:8] #输出'1234567',索引从0开始计数,从下标1开始取数,第8位不取。
    Str[1:] #输出'123456789',从下标1开始到最后
    Str[:8] #输出'01234567',从下标0开始到第8位
    Str[1:8:2] #输出'1357',从下标1开始,间隔2取字符
    Str[::-1] #输出'9876543210',字符串取反

    字符串删除前后指定字符

      Python strip() 方法用于移除字符串头尾指定的字符,默认为空白符(包括' ', ' ', ' ', ' ')

    Str.strip([chars]) #删除str字符串前后指定字符
    Str.lstrip([chars]) #删除str字符串头部指定字符
    Str.rstrip([chars]) #删除str字符串尾部指定字符

      实例

    >>> "  abc def    ".strip()
    'abc def'
    >>> "  abc def    ".lstrip()
    'abc def    '
    >>> "  abc def    ".rstrip()
    '  abc def'
    >>> "!!!!@@abc@@!!!".strip('!@')
    'abc'

    字符串比较

        Python直接使用"==" "!="操作符比较两个字符内容。

    >>> "Python" == "Python"
    True
    >>> "Python" == "python"
    False
    >>> "Python" != "python"
    True

    字符串查找

    str.find(substr [, start [ , end]]) #查找str是否包含substr,如果start和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
    str.rfind(substr [, start [ , end]]) #同find(),从右边开始查找。
    str.index(substr [, start [ , end]]) #同find(),如果substr不在str中会报一个异常。
    str.rindex(substr [, start [ , end]]) #同index(),从右边开始。

      实例

    >>> Str = '2018-02-01 <ver>"VERSION1.0"</ver><ver>"VERSION2.0"</ver>'
    >>> Str.find('<ver>') #从字符串开始处开始查找
    11
    >>> Str.rfind('<ver>')  #从字符串尾部开始查找
    34
    >>> Str.index('<ver>') #同字符串开始处开始查找
    11
    >>> Str.rindex('<ver>')
    34
    >>> Str.find('<Ver>') #没有匹配字符串,输出-1
    -1
    >>> Str.index('<Ver>') #没有匹配字符串,报错。
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: substring not found
    >>>

    字符串替换

        Python中字符串的替换是通过replace()函数实现,但replace()不支持正则表达式语法。

    str.replace(old,new[,max]) #把old替换成new,如max指定,则替换不超过max次.

     实例

    >>> Str = "IP1:192.168.0.1, IP2:127.0.0.1"
    >>> Str.replace('192.168.0.1','10.10.10.10') 
    'IP1:10.10.10.10, IP2:127.0.0.1'
    >>> print Str 
    IP1:192.168.0.1, IP2:127.0.0.1 #原字符串内容不会发生变化。

      如果想将2个IP地址全部替换为10.10.10.10,可以继续使用replace()函数

    >>> Str.replace('192.168.0.1','10.10.10.10').replace('127.0.0.1','10.10.10.10')
    'IP1:10.10.10.10, IP2:10.10.10.10'

       但是如果超过3个以上不同的字符串全部替换,就不适合使用replace函数了。可以使用re模块的sub函数。

    >>> import re
    >>> re.sub(r'd+.d+.d+.d+','10.10.10.10',Str)
    'IP1:10.10.10.10, IP2:10.10.10.10'

    字符串分割

    str.split(substr="" [,num]) #以substr为分隔符切片str,如果num指定,则仅分隔 num 个子字符串。默认分割字符是空格

      实例

    >>> Str = "Python Java Shell"
    >>> Str.split()  #默认是以空格做为分割符,连续的空格可以认为是一个空格
    ['Python', 'Java', 'Shell']  
    >>> Str = "Python,Java,Shell"
    >>> Str.split(',') #指定以逗号做为分割符
    ['Python', 'Java', 'Shell']

      如果需要指定多个分割符,字符串的split()函数就不适合了。需要使用re模块的split()函数。

    >>> Str = "Python:Java:Shell|C++|Ruby"
    >>> Str.split(':')
    ['Python', 'Java', 'Shell|C++|Ruby']

      使用re.split()方法分割如下:

    >>> import re
    >>> Str = "Python:Java:Shell|C++|Ruby"
    >>> re.split(r'[:|]',Str)
    ['Python', 'Java', 'Shell', 'C++', 'Ruby']

    字符串大小写转换

    str.lower() #所有大写字符转换为小写.
    str.upper() #所有小写字母转换为大写
    str.swapcase() #字符串中的大小写互转
    str.capitalize() #把字符串的第一个字符大写
    str.title() #所有单词都是以大写开始,其余字母均为小写

      实例

    >>> Str  = "aBc def"
    >>> Str.lower()
    'abc def'
    >>> Str.upper()
    'ABC DEF'
    >>> Str.swapcase()
    'AbC DEF'
    >>> Str.capitalize()
    'Abc def'
    >>> Str.title()
    'Abc Def'

     

  • 相关阅读:
    LINUX中常用操作命令
    NET Core Kestrel部署HTTPS
    Java中Enum枚举的使用
    Java多线程——sychronized
    Java中SynchronizedMap与ConcurrentHashMap的对比
    Java中HashMap实现原理
    数据结构——Java实现单向链表
    数据库——事务基础
    数据结构——Java实现二叉树
    Java中ThreadLocal的深入理解
  • 原文地址:https://www.cnblogs.com/linyfeng/p/8467612.html
Copyright © 2011-2022 走看看