• Python学习笔记3—字符串


    原始字符串

    使用转义或者r,这种方法在网站设置网站目录结构的时候非常管用。

    >>> dos="c:
    ews"
    >>> print dos
    c:
    ews
    >>> dos="c:\news"
    >>> print dos
    c:
    ews
    >>> dos=r"c:
    ews"      #r开头的字符串就是原始字符串
    >>> print dos
    c:
    ews
    >>> 

    索引和切片

    第一个字符是排序为0,空格也占用一个位置

    >>> lang="study python"
    >>> lang[0]
    's'
    >>> lang[2]
    'u'
    >>> "hello"[0]
    'h'

     根据字符查索引

    >>> lang.index("py")
    6
    >>> lang="study python"
    >>> lang.index("s")
    0
    >>> lang.index("p")
    6
    >>> 

    切片

    得到的字符串是前包括后不包括(序号)

    >>> lang="study python"
    >>> lang[0:4]      #从0到序号4之前的字符串
    'stud'
    >>> lang[1:]     #从序号1到最末的字符串
    'tudy python'
    >>> lang[:10]
    'study pyth'    #得到序号10之前的字符,包括10
    >>> lang[:]     #得到所有字符
    'study python'

    还有一种就是从右边开始切,注意[]中左边的数字要小于右边的数字

    >>> a="python"
    >>> a[-1]
    'n'
    >>> a[-3:-1]
    'ho'

    字符串的连接

    >>> str1="hello"
    >>> str2="world"
    >>> str1+" "+str2    #字符串的连接
    'hello world'

    判断一个字符串是否包含另一个字符串

    >>> "h" in "hello"
    True
    >>> "lll" in "hello"
    False

    求最值

    一个字符串中的每个字符在计算机中都对应着一个编码。

    >>> max("hello")
    'o'
    >>> min("hello")
    'e'
    >>> max("12","13")
    '13'

    查看一个字符对应的ASCII值

    >>> ord("a")
    97
    >>> ord("b")
    98
    >>> ord("A")
    65

    字符串的比较

    小于则返回-1,等于返回0,大于返回1,注意字符串之间的比较,先比较第一个字符,如果相等就比第二个字符,如果不相等则返回比较结果。

    >>> cmp("a","b")
    -1
    >>> cmp("123","2")
    -1
    >>> cmp("abc","b")
    -1

    字符串之间的乘法

    >>> "-"*10
    '----------'
    >>> "a"*10
    'aaaaaaaaaa'

    计算一个字符串之间的长度

    返回的是int类型

    >>> m=len("hello")
    >>> m
    5
    >>> type(m)
    <type 'int'>

    字符串格式化输出

    >>> "I like %s ,you know." %"Python"       %s是个占位符可以被其它字符串代替
    'I like Python ,you know.'
    >>> "%d years" %15
    '15 years'
    >>> "My wegiht is %.2f" %70.222
    'My wegiht is 70.22'
    >>> "My wegiht is %+.2f" %70.222
    'My wegiht is +70.22'
    >>> print "My name is %s,I'm %d years." %("Keven",20) #也可以出现多个替代符 My name is Keven,I'm 20 years.
     

    上面的方法常被认为是太古老的,下面是新的格式方法,即String .format的格式方法,{}作为占位符

    >>> print "My name is {},I'm {} years.".format("Keven",20)
    My name is Keven,I'm 20 years.
    >>> print "My name is {name},I'm {age} years.".format(name="Keven",age=20) #如果觉得还不明确,可以采取这种对应的方法
    My name is Keven,I'm 20 years.

    常用的字符串方法

    >>> dir(str)
    ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

    具体的方法可以用help查看

    >>> help(str.upper)
    Help on method_descriptor:
    
    upper(...)
        S.upper() -> string
        
        Return a copy of the string S converted to uppercase.
    (END) 

    实例:

    1.split,分割,string向list转换

    >>> "I love Python".split(" ")
    ['I', 'love', 'Python']
    >>> "www.qq.com".split(".")
    ['www', 'qq', 'com']

    >>> line = "Hello.I am keven.Welcome you."
    >>> line.split(".",1)                  #指定分割的范围
    ['Hello', 'I am keven.Welcome you.']

    2.strip,lstrip,rstrip,去空格

    >>> " hello ".strip()
    'hello'
    >>> " hello ".lstrip()
    'hello '
    >>> " hello ".rstrip()
    ' hello'

    3.字符大小写转换

    • S.upper()             变大写
    • S.lower                    变小写
    • S.capitalize()        首字母大写
    • S.isupper()              是否全是大写
    • S.islower                 是否全是小写
    • S.istitle()                 每个单词的第一个字母是否为大写
    >>> "hello".upper()
    'HELLO'
    >>> "hello".istitle()
    False
    >>> "Hello".istitle()
    True
    >>> "Hello World".istitle()
    True
    >>> "Hello world".istitle()
    False

    join()连接字符串

    >>> b= "www.qq.com".split(".")
    >>> b
    ['www', 'qq', 'com']
    >>> ".".join(b)
    'www.qq.com'
    >>> "/".join(b)
    'www/qq/com'

    Python避免中文乱码

    1.在开头声明

    #coding=utf-8

    2.遇到字符(节)串,立刻转化为unicode,不要用str(),直接使用unicode()

    >>> a=unicode('',encoding='utf-8')
    >>> a
    u'u4e2d'
    >>> print a.encode('utf-8')
    中

    3.如果对文件操作,打开文件的时候,最好用 codecs.open,替代 open

    import codecs
    codecs.open('filename', encoding='utf8')
  • 相关阅读:
    fdisk 分区
    fdisk 添加逻辑分区
    centos7 bond0 双网卡配置
    查看centos7启动项
    本地yum源安装docker
    cobbler Ubuntu16.04 安装
    docker-ce-17.03.2 离线安装RPM包
    day14 生成器的进阶
    day13迭代器与生成器
    day12闭包,装饰器
  • 原文地址:https://www.cnblogs.com/zydev/p/5834521.html
Copyright © 2020-2023  润新知