• 【Python学习笔记】对象、方法


    1. 对象方法定义

    对象通常都拥有属于自己的 方法(英文叫 method )。

    对象的方法其实可以看成是对象所拥有的函数。也就是说 这个方法,是属于这个对象的函数。

    调用对象的方法,和调用函数差不多,只要在前面加上 所属对象一个点

    比如:

    # var1 是一个列表对象
    var1 = [1,2,3,4,5,6,7]
    
    # 列表对象都有 reverse方法
    var1.reverse()
    print(var1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里, reverse就是列表对象的一个方法,该方法将列表元素倒过来。

    var1.reverse() 语句就会将列表变量var1 里面的元素倒过来存放。

    运行结果就是 var1就变成了 [7, 6, 5, 4, 3, 2, 1]

    • 对象的方法是和这个对象 类型 紧密相关的。
    • 对象是什么类型,就决定了对象有哪些方法。
    • 字符串有字符串的方法,列表有列表的方法,元组有元组的方法。

    2. 字符串的方法

    count

    count 方法可以返回字符串对象包含了多少个参数指定的字符串

    '我们今天不去上学,我们去踢足球'.count('我们') # 返回值 2
    
    • 1

    find

    find 方法 会在字符串中查找参数子字符串,并返回该 参数字符串 在其中 第一个出现的位置索引

    str1 = '我们今天不去上学,我们去踢足球'
    pos1 = str1.find('我们')  # find返回的是第一个 '我们' 的索引 0
    
    • 1
    • 2

    如果字符串对象里面 没有 要查找的参数字符串,就会返回 -1

    find 方法的第二个参数,用来指定查找字符串范围,比如

    str1 = '我们今天不去上学,我们去踢足球'
    
    # 第2个参数 5, 表示从 索引 5 的位置开始往后查找
    pos1 = str1.find('我们',5)  # 返回的是后面 “我们”的索引 9
    
    • 1
    • 2
    • 3
    • 4

    split

    split 是我们常用的方法,经常用来从字符串中 截取 出我们想要的信息。

    split 方法以参数字符串为分割符 ,将字符串 切割为多个 字符串,作为元素存入一个列表,并返回这个列表。

    看看下面的例子

    str1 = '小张:79 | 小李:88 | 小赵:83'
    print(str1)
    pos1 = str1.split('|')  
    # 运行结果
    $ python main.py
    小张:79 | 小李:88 | 小赵:83
    ['小张:79 ', ' 小李:88 ', ' 小赵:83']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这里 split方法指定用 | 作为源字符串str1的分割符, 这样原来的字符串 就被分成了 3个部分

    最后将这个三个字符串存入一个列表中返回。

    注意,分隔符本身在切割后,会被丢弃掉,所以切割后的字符串中不会有分隔符。

    原来的字符串,被切开后,分隔符前面有的空格字符,会保留下来。

    小张 前面没有空格,所以切割后,切割出来的结果就没有空格。

    小李小赵 前面是有空格的,切割出来的结果就有空格

    不一定非要用 竖线分割, 我们可以指定任何其他的分隔符来分割字符串,比如

    '小张:79 | 小李:88 | 小赵:83'.split('小赵')
    
    • 1

    这样就是以 小赵 这个字符串为界 ,分割。返回结果如下

    [
        '小张:79 | 小李:88 | ',
        ':83'
    ]
    
    • 1
    • 2
    • 3
    • 4

    splitlines

    字符串对象还有一个 splitlines 方法也比较常用,就是把字符串 按换行符 进行切割,比如

    salary = '''
    小王  10000元
    小李  20000元
    小徐  15000元
    '''
    
    print(salary.splitlines())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果输出为

    ['', '小王  10000元', '小李  20000元', '小徐  15000元']
    
    • 1

    这样每行内容作为列表的一个元素。

    splitlines 方法经常用在文件处理中,读出文件内容存入字符串,然后调用字符串的 splitlines方法,把每行内容依次存入列表。

    随后循环遍历列表,就可以逐行分析文件内容了。

    join

    join 方法和 split方法正好相反

    join 是将列表中的字符串元素以某字符串为连接符, 连接 为一个字符串

    比如

    '|'.join([
        '小张:79 ',
        ' 小李:88 ',
        ' 小赵:83'
    ])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    返回的就是字符串 小张:79 | 小李:88 | 小赵:83

    相当于把参数列表里面的字符串连接在一起, 中间加上指定的连接符 |

    strip 、 lstrip 、 rstrip

    strip方法可以将 字符串前面和后面的空格删除,但是不会删除字符串中间的空格

    比如

    '      小  李:88       '.strip() 
    # 返回的就是 '小  李:88',去掉了前后的空格,但是中间的空格不会去掉
    
    • 1
    • 2

    lstrip方法 将 字符串前面 (左边) 的空格删除,但是不会删除字符串中间和右边的空格

    比如

    '      小  李:88       '.lstrip() 
    # 返回的就是 '小  李:88       '
    
    • 1
    • 2

    rstrip方法 将 字符串后面 (右边) 的空格删除,但是不会删除字符串中间和左边的空格

    比如

    '      小  李:88       '.rstrip() 
    返回的就是 '      小  李:88'
    
    • 1
    • 2

    replace

    replace 也是常用的方法,用来 替换 字符串里面 所有指定的子字符串为另一个字符串

    比如

    str1 = '我们今天不去上学,我们去踢足球'
    str1 = str1.replace('我们', '他们')  
    
    • 1
    • 2

    上面的replace方法就会把字符串中所有的我们,替换成他们

    结果就是 '他们今天不去上学,他们踢足球'

    startswith 和 endswith

    startswith 方法检查字符串是否以参数指定的字符串 开头,如果是,返回True,否则返回False

    endswith 方法检查字符串是否以指定的字符串 结尾,如果是,返回True,否则返回False

    str1 = '我们今天不去上学,我们去踢足球'
    str1.startswith('我们')  # 返回 True
    str1.endswith('我们')    # 返回 False
    
    • 1
    • 2
    • 3

    isdigit

    isdigit 方法检查字符串是否全部由数字构成,如果是,返回True,否则返回False

    比如,可以通过 isdigit 判断用户输入的电话号码是否全部是数字字符

    str1 = input('请输入手机号码:')
    if not str1.isdigit(): # 不是全部由数字字符构成
        print('您输入的手机号码不正确,必须全部是数字')
    
    • 1
    • 2
    • 3

    字符串的倒序

    要得到一个字符串的 倒序字符串,只需要使用切片操作 [::-1]

    :: 表示切片字符串的从头到尾,也就是全部内容, 而 步长 为 -1 表示,颠倒过来取元素

    如下,

    str1 = '123456789'
    reverse = str1[::-1]
    print(str1)
    print(reverse)
    # 运行结果
    $ python main.py
    123456789
    987654321
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 列表的方法

    append

    在列表的后面添加一个元素。

    比如

    a = [1, 2, 3.14, 'hello']  
    # append 之后,a就变成了 [1, 2, 3.14, 'hello', '你好']
    a.append('你好')
    print(a)
    
    # 继续append ,a就变成了 [1, 2, 3.14, 'hello', '你好', [7,8]]
    a.append([7,8])
    print(a)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意,append 方法的返回值是 None,而不是新的列表对象。

    insert

    如果我们 不是要在后面 添加一个元素, 而是在 指定位置插入一个元素,就可以使用insert方法

    比如

    a = [1, 2, 3.14, 'python']  
    
    # 插入到索引0的位置,也是插到第1个元素的位置上
    # a列表内容就变成了 ['你好', 1, 2, 3.14, 'python']
    a.insert(0, '你好')
    print(a)
    
    # 插入到索引2的位置,也是插到第3个元素的位置上
    # a列表内容就变成了 ['你好', 1, 'rrr',  2, 3.14, 'python']
    a.insert(2, 'rrr')
    print(a)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    同样的,insert方法的返回值也是 None

    pop

    如果我们要从列表 取出并删除 一个元素,就可以使用pop方法。

    该方法的参数就是要取出的元素的索引

    注意,取出后,该元素就从列表中删除了。所以pop也经常用来删除某个元素

    比如

    a = [1, 2, 3.14, 'python']  
    
    # 取出索引为3 的元素,也就是第4个元素
    poped = a.pop(3)
    
    # 取出后,a列表对象内容就变成了 [ 1, 2, 3.14]
    print(a)
    
    # 而取出的元素赋值给变量poped, poped的内容就是 'python'  
    print(poped)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    pop 方法的返回值是提取出来的元素

    remove

    remove方法也是删除列表元素。

    pop方法的参数是要删除元素的 索引

    而 remove方法的参数就是要删除元素的

    remove从第1个元素开始,寻找 和参数对象 相等的元素,如果找到了,就删除。

    找到后,不会继续往后寻找其它相等的元素。

    也就是说remove 最多只会删除1个元素。

    比如

    var1 = ['a','b','c','a']
    var1.remove('a')
    print(var1)
    
    • 1
    • 2
    • 3

    运行结果 var1就变成了 [‘b’, ‘c’, ‘a’]。

    可以发现,只删除了第一元素’a’, 最后的 ‘a’ 并么有删除。

    同样的,remove 方法的返回值也是 None

    reverse

    reverse方法将列表元素倒过来

    var1 = [1,2,3,4,5,6,7]
    var1.reverse()
    print(var1)
    
    • 1
    • 2
    • 3

    运行结果 var1就变成了 [7, 6, 5, 4, 3, 2, 1]

    同样的, reverse 方法的返回值也是 None

    index

    index 方法返回 参数对象 在列表 中的位置,也就是索引

    var1 = [1,2,3,4,5,6,7]
    idx = var1.index(5)
    print(idx)
    
    • 1
    • 2
    • 3

    运行后,发现idx的值为4 , 也就是说 5这个元素在列表 var1 中 索引为4

    sort

    可以使用 sort 方法对列表进行排序。

    调用sort 方法的列表中的元素通常都是 数字 或者 字符串。如下

    students = ['Alex','Tom','Jerry','Michale','Alex']
    students.sort()
    print(f'after sort: {students}')
    
    numbers = [7,3,8,2,9]
    numbers.sort()
    print(f'after sort: {numbers}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出如下

    after sort: ['Alex', 'Alex', 'Jerry', 'Michale', 'Tom']
    after sort: [2, 3, 7, 8, 9]
    
    • 1
    • 2

    注意: 调用过 sort 方法后,列表中的内容就改变了。

    sort方法的返回值是None,所以不要写这样的代码

    numbers = [7,3,8,2,9]
    numbers2 = numbers.sort()
    print(numbers2)
    
    • 1
    • 2
    • 3

    这样 numbers2 的值是None, 而不是排序后的列表

  • 相关阅读:
    这样封装echarts简单好用
    测试技能提升篇——一文理解消息中间件里那些通用的核心概念
    Android学习笔记 1.3 搭建Android开发环境
    UnityAPI学习之碰撞检测与触发检测
    使用ffmepg实现多路视频流合并
    pg无法启动
    Spring 随笔 AOP 3-自调用
    Java开发学习(十八)----AOP通知获取数据(参数、返回值、异常)
    Java8实战-总结23
    Linux目录结构与路径
  • 原文地址:https://blog.csdn.net/qq997758497/article/details/133916923