VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • Python线性数据结构(2)

还有index()find() 类似,不过找不到会抛异常,不建议使用。

s.count() 还可以统计字符出现的次数。

len(s) 还可以统计字符串的长度。

  • 分割

    split( ) 方法:S.split(sep=None, maxsplit=-1) -> list of strings

    sep表示分隔符,缺省为空白字符串,maxsplit=-1表示遍历整个字符串,最后返回列表。

    str = "a,b,c,d,e,f,g"
    print(str.split(sep=','))
    
    # 输出结果如下:
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    

    rsplit( ) 方法与上面不同就是,从右至左遍历。

    splitlines() 方法: S.splitlines([keepends]) -> list of strings

    按行来切割字符串,keepends表示是否保留行分隔符,最后返回列表。

    str = "a\nb\nc\r\nd"
    print(str.splitlines())
    print(str.splitlines(keepends=True))
    
    # 输出结果如下:
    ['a', 'b', 'c', 'd']
    ['a\n', 'b\n', 'c\r\n', 'd']
    

    partition() 方法 : S.partition(sep) -> (head, sep, tail)

    从左至右查询分隔符,遇到就分割成头、分隔符、尾的三元组,返回的是一个元组tuple。

    str = "a*b*c*d"
    print(str.partition('*'))
    # 输出结果如下:
    ('a', '*', 'b*c*d')
    

    rpartition() 方法 :S.rpartition(sep) -> (head, sep, tail)

    与上方法不同,就是从右至左,不过这个比较常用,可以获取后缀部分信息。

    str1 = "http://www.python.org:8843"
    str2 = str1.rpartition(':')
    port = str2[-1]
    print(port)
    
  • 替换

    replace() 方法:S.replace(old, new[, count]) -> str

    遍历整个字符串,找到全部替换,count表示替换次数,缺省替换全部,最后返回一个新的字符串

    str = "www.python.org"
    print(str.replace('w','m'))  # 返回的是一个新的字符串
    print(str)  # 字符串不可变,保持原样
    
    # 输出结果如下:
    mmm.python.org
    www.python.org
    
  • 移除

    strip() 方法:S.strip([chars]) -> str

    在字符串两端移除指定的字符集chars , 缺省移除空白字符。

    str = " * www.python.org  *"
    print(str.strip("* "))  # 去掉字符串首尾带有星号'*' 和 空白' '
    
    # 输出结果如下:
    www.python.org
    

    还有lstrip() 和 rstrip 分别是移除字符串左边和右边字符集。

  • 首尾判断

    startswith() 方法:S.startswith(prefix[, start[, end]]) -> bool

    缺省判断字符串开头是否有指定的字符prefix,也可指定区间。

    str = "www.python.org"
    print(str.startswith('www',0,14))
    print(str.startswith('p',0,14))
    # 输出结果如下:
    True
    False
    

    endswith() 方法:S.endswith(suffix[, start[, end]]) -> bool

    缺省判断字符串结尾是否有指定的字符suffix,也可指定区间。

    str = "www.python.org"
    print(str.startswith('www',0,14))
    print(str.startswith('p',0,14))
    # 输出结果如下:
    True
    False
    
    str = "www.python.org"
    print(str.endswith('g',11,14))
    # 输出结果如下:
    True
    
  • 格式化

    c风格格式化:

    格式字符串:使用%s(对应值为字符串),%d(对应值为数字)等等,还可以在中间插入修饰符%03d。

    被格式的值:只能是一个对象,可以是元组或是字典。

    name = "Tom"
    age = 18
    print("%s is %d age." % (name,age))
    # 输出结果如下:
    Tom is 18 age.
    

    format格式化:

    格式字符串:使用花括号{ }, 花括号里面可以使用修饰符。

    被格式的值:*args为可变位置参数,**kwargs为可变关键字参数。

    # 位置传参
    print("IP={} PORT={}".format('8.8.8.8',53))  # 位置传参
    print("{Server}: IP={1} PORT={0}".format(53, '8.8.8.8', Server='DNS Server'))  # 位置和关键字传参传参
    
    # 输出结果如下:
    IP=8.8.8.8 PORT=53
    DNS Server: IP=8.8.8.8 PORT=53
    
    # 浮点数
    print("{}".format(0.123456789))
    print("{:f}".format(0.123456789))    #  小数点默认为6位
    print("{:.2f}".format(0.123456789))  # 取小数点后两位
    print("{:15}".format(0.123456789))   # 宽度为15,右对齐
    
    # 输出结果如下:
    0.123456789
    0.123457     # 为什么是这个值?大于5要进位
    0.12
        0.123456789  # 左边有4个空格
    
  • 其他常用函数

    str = "DianDiJiShu"
    print(str.upper())  # 字母全部转化为大写
    print(str.lower())  # 字母全部转化为小写
    
    # 输出结果如下:
    DIANDIJISHU
    diandijishu
    
  • 2.2.4 bytes 字节

    bytes和 bytearray从python3引入的两种数据类型。

    在计算机的世界里,机器是以0 和 1 组成的,也叫二进制(字节)来通信的,这套编码我们叫做ASCII编码。

    所以机器通信的语言就叫做机器语言。然而我们人类想要跟机器通信,那么需要怎么做呢?

    • 把人类的语言编码成机器能够识别的语言,通常叫做编码(字符串转换为ASCII码)。
    • 把机器的语言解码成人类能够识别的语言,通常叫做解码(ASCII码转换为字符串)。

    至今现代编码的发展史过程大概是这样的:ASCII(1字节) -> unicode(2~4字节) -> utf-8(16字节),utf8是多字节编码,一般使用13字节,特殊使用4字节(一般中文使用3字节),向下兼容ASCII编码。

    中国也有属于自己的编码:gbk

    ASCII码表常用的必须牢记(整理部分):

    详细ASCII码下载链接:

    链接:https://pan.baidu.com/s/1fWVl57Kqmv-tkjrDKwPvSw 提取码:tuyz
    

    所以,机器上的进制就是字节,1字节等于8位,例如:十进制2,用2进制和16进制表示:

    # 二进制
    0000 0010  # 一个字节bytes
    
    # 16进制,机器基本都是显示16进制
    0x2
    

    bytes 是不可变类型

    bytes()     # 空bytes,一旦创建不可改变
    bytes(int)  # 指定字节的大小,用0填充
    bytes(iterable_of_ints)  # [0.255]整数的可迭代对象
    bytes(string, encoding[, errors])  # 等价于string.encoding(),字符串编码成字节
    bytes(bytes_or_buffer)  # 复制一份新的字节对象
    
    • 初始化

      b1 = bytes()
      b2 = bytes(range(97,100))
      b3 = bytes(b2)
      b4 = bytes('123',encoding='utf-8')
      b5 = b'ABC'
      b6 = b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')
      print(b1, b2, b3, b4, b5, b6, sep='\n')
      
      # 输出结果如下:
      b''
      b'abc'
      b'abc'
      b'123'
      b'ABC'
      你好
      

    2.2.5 bytearray 字节数组

    bytearray 是可变数组,可以进行增删改操作,类似列表。

    bytearray()  # 空bytearray,可改变
    bytearray(iterable_of_ints)  # [0.255]整数的可迭代对象
    bytearray(string, encoding[, errors])  # 等价于string.encoding(),字符串编码成字节
    bytearray(bytes_or_buffer)   # 复制一份新的字节数组对象
    bytearray(int)  # 指定字节的大小,用0填充
    
    • 增删改

      # 初始化
      b = bytearray()
      print(b)
      # 输出结果如下:
      bytearray(b'')
      #--------------------------
      # 增加元素对象
      b.append(97)
      print(b)
      b.extend([98,99])
      print(b)
      # 输出结果如下:
      bytearray(b'a')
      bytearray(b'abc')
      #--------------------------
      # 插入元素对象
      b.insert(0,65)
      print(b)
      # 输出结果如下:
      bytearray(b'Aabc')
      #--------------------------
      # 删除元素对象
      b.pop()
      print(b)
      # 输出结果如下:
      bytearray(b'Aab')
      

    今天就到这了,下一回合咱再接着唠嗑 set (集合)和 dict (字典) ,敬请耐心等待。

     
    
    相关教程