Python学习之旅--容器

Posted 赵jc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之旅--容器相关的知识,希望对你有一定的参考价值。

1,字符串

  • 目的: 知道字符串的格式

  • 操作流程:

    • 三种格式

      # 1, 字符串,单引号形式
      name = '张三'
      print(type(name))
      
      # 2, 字符串, 双引号的形式
      product = "UiBot"
      print(type(product))
      
      # 3,字符串, 三引号形式
      company = """赵jc123213..."""
      print(type(company))
      

2,输入输出

  • 目的: 知道字符串的输出形式, 和输入格式

  • 操作流程:

    # 1, 字符串, 格式化输出一
    name = "迪丽热巴"
    age = 23
    print("她的名字是%s, %d岁了"%(name,age))
    
    # 2, 字符串, 格式化输出二, f-string
    print(f'她的名字是:name, age岁了')
    
    # 3, 字符串, 格式化输出三, format
    print("她弟名字是:, 岁了".format(name,age))
    
    print("====================华丽分割线======================")
    
    # 4,字符串输入
    product = input("请输入你要学习的内容:")
    print("学习的是 = ".format(product))
    

3,切片

  • 目的: 可以通过切片方法, 截取字符串内容

  • 操作流程:

    """
    格式:
        name[start:end:step]
        start: 开始位置的索引(包含),默认值0
        end: 结束位置索引(不包含),默认值字符串长度
        step: 步长,默认1
    """
    name = "helloworld"
    print(name[0:10:1]) # helloworld, 里面默认值
    print(name[::]) # helloworld, 和上面等价
    
    # 1, 截取name中的hello
    print(name[0:5:])
    
    # 2, 截取name中的world
    print(name[5::])
    
    # 3,截取name中的llo
    print(name[2:5:])
    
    # 4,获取name中的指定位置的字符串
    print([name[::2]])
    
    # 5,面试题: 使用切片的方式将字符串进行反转 
    print(name[::-1]) # 等价于 name[-1:-len(name)-1:-1]
    

4, 字符串方法

  • 目的: 了解python中常见的字符串方法

  • 操作流程:

    • 需要掌握的: +连接的, 获取值的, lower,upper,split
    #1,字符串连接操作 +
    print("hello" + "world")
    print(3*"hello" + "world")
    name = "hello"
    print(name + "zjc")
    
    #2,获取字符串中的字符, 格式, 字符串[索引]
    print(name[0])
    print(name[1])
    
    #3,capitalize,首个字符大写,其余为小写
    print("hello world".capitalize()) # Hello world
    
    #4,casefold, 大写转小写,支持德语
    print("hello WorlD".casefold()) #hello world
    
    #5,center, 当指定长度大于字符串长度,两边补空格
    print("zjc".center(10))
    
    #6,count,指定字符在指定位置出现的次数
    print("helloworld".count("l",0,6))
    
    #7,endswith, 判断字符是否已指定的字符串结尾
    print("加藤.avi".endswith(".avi"))
    
    #8,find,查找字符串位置,不存在返回-1
    print("helloworld".find("lloa"))
    
    #9,format_map,格式化输出对象
    class Default(dict):
        def __missing__(self, key):
            return "荷兰"
    print('name was born in country'.format_map(Default(name='Guido')))
    
    #10,index,查找字符串位置,不存在报错
    # print("helloworld".index("lloa"))
    
    #11, isspace,判断字符串是不是只有空白
    print("   a".isspace())
    
    #12,join, 将列表连接成一个字符串
    print("---".join(["A","B","C"])) # A---B---C
    
    #13,lower,将字符串全部转小写
    print("HELLOzjcPython".lower())
    
    #14,lstrip
    print('aaa.example.com'.lstrip('cmowza.'))
    
    #15,partition, 使用指定的符号将字符串切割成三部分
    print("hello,world,python,zjc".partition(","))
    
    #16,split, 使用指定的符号将字符串切割成若干块
    print("hello,world,python,zjc".split(","))
    
    • 官方字符串方法: https://docs.python.org/zh-cn/3.8/library/stdtypes.html#string-methods

5, 列表

  • 目的: 知道列表的格式, 遍历方式

  • 作用: 用来存储多个元素的容器

  • 操作流程:

    #1, 定义列表
    names = ["迪丽热巴","古力娜扎","马尔扎哈",100]
    print(names)
    
    #2,获取列表的值, 列表名称[索引]
    # 索引取值: [0, 列表长度-1], 如果超出报错
    print(names[0])
    print(names[1])
    print(names[2])
    print(names[3])
    print("================")
    
    #3,遍历列表
    for i in range(0,len(names)):
        print(names[i])
    
    #4,获取列表长度,方法
    print(len(names))
    

6, 列表方法

  • 目的: 掌握列表中常见的操作方法

  • 操作流程

    #1,添加元素,append, extend, insert
    names = ["迪丽热巴","古力娜扎","马尔扎哈"]
    names.append("刷我滴卡")
    names.extend(["A","B"]) # names += ["A","B"]
    names.insert(1,"鹿晗")
    print(names)
    
    #2,修改元素
    names[0] = "热巴"
    print(names)
    
    #3,查找 in, not in(Boolean), index, count
    print("鹿晗" not in names)
    print(names.index("A"))
    print(names.count("A"))
    
    #4,删除 del, pop, remove
    # del names[0] #删除之后,没有返回值
    # print(names.pop(0))# 删除之后,有返回值, 根据索引来删除的
    names.remove("鹿晗")# 删除之后,没有返回值, 根据元素来删除的
    print(names)
    
    #5,列表反转
    temp = [1,2,3,4,5]
    temp.reverse()
    print(temp)
    

7, 列表嵌套

  • 目的: 了解列表的嵌套方式, 以及遍历过程

  • 操作流程

    #1,列表嵌套
    # man_names = ["王宝强","徐峥","黄渤"]
    # woman_names = ["迪丽热巴","古力娜扎","马尔扎哈"]
    people_names = [["王宝强","徐峥","黄渤"],["迪丽热巴","古力娜扎","马尔扎哈"]]
    
    #2,遍历
    for item in people_names:
        for name in item:
            print(name)
    

8, 元祖

  • 目的: 知道元祖的定义格式,取值方式,遍历

  • 操作流程

    """
    元祖特点:
        1, 数据不允许修改, 添加
        2, 配合字典使用作为key
        3, 当一组数据定义好之后,不允许别人修改,可以使用元素
    """
    
    #1, 定义元素
    names = ("迪丽热巴","古力娜扎","马尔扎哈")
    print(names[0])
    print(len(names))
    
    #2,遍历, 和列表完全一样
    for i in names:
        print(i)
    

9, 字典

  • 目的: 掌握字典的作用, 定义方式, 取值方式

  • 操作流程

    """
    字典作用:
        用来详细的描述一件事物
    
    字典定义格式:
        key: value, key2:value2
    
    字典取值:
        字典名[key]
    """
    
    #1,定义字典
    person = 
        "姓名":"迪丽热巴",
        "身高":"167cm",
        "体重":50,
        "公司":"TVB"
    
    print(person)
    
    #2,获取字典元素
    print(person["身高"])
    
    #3,遍历,获取到的是key, 需要用key来取值
    for key in person:
        print(f"key = key, value = person[key]")
    
    

10,字典方法

  • 目的: 掌握字典中的常见增删改查方法

  • 操作流程

    #1, 定义字典, 添加元素
    person = 
        "姓名":"迪丽热巴",
        "身高":"167cm",
        "体重":50,
        "公司":"TVB"
    
    person["性别"] = "女"
    # print(person)
    
    #2,修改
    person["性别"] = "woman"
    # print(person)
    
    #3,删除
    del person["性别"]
    print(person)
    
    #4,查, in ,not in
    # print("公司" in person)
    
    #5,额外方法
    #5,1 获取字典中所有的key
    print(person.keys())
    
    #5,2 获取字典中所有的value
    print(person.values())
    
    #5,3 将元素转换成元祖
    print(person.items())
    
    #5,4 遍历
    for key,value in person.items():
        # print(f"key,person[key]")
        # print(key)
        print(f"key = key, value = value")
    

11,通用方法

  • 目的: 掌握python中内置的常见通用方法

  • 操作流程:

    #1, 列表相加
    print([1, 2] + [3, 4] * 2)
    
    #2, len
    print(len([1,2,3]))
    print(len((1,2,3)))
    print(len("name":"张三","age":13))
    
    #3, max,min
    print(max([4,5,6,6,2,2,34,1]))
    print(min([4,5,6,6,2,2,34,1]))
    
    #4,del 删除的是字典列表
    a = (1,2,3) #不能删除
    b = [1,2,3]
    c = "a":1,"b":2
    del c["a"]
    print("=========================")
    
    """
    5,练习,需求: 通过a-z,A-Z,0-9随机生成一个32位的随机字符串
    应用场景: 加密过程中用到的字符串, sha1
    """
    import string
    import random
    # print(string.ascii_letters) # 52个大小写字符
    # print(string.digits) # 0123456789十个数字
    base_string = string.ascii_letters + string.digits
    random_list = random.choices(base_string,k=32)# 根据提供的字符串,随机获取32位
    random_string = "".join(random_list)
    print(random_string)
    
    

总结

1, 字符串, 格式’’, “”, “”" “”"

2, 输入,输出; input, print, f’,’, format

3, 切片, name[start,end,step]; 包头不包位; 反转面试题; name[::-1]

4, 字符串常见方法, +, name[索引], lower, upper, find, index

5, 列表方法, [], append, extend, insert, del, pop, remove, reserve

6, 元素, (), 特点: 数据不能改变

7, 字典, key:value, 特点: 键值对, del, keys(), values(), items()

8, len, max, min, string.ascii_letters, digits, random.choice(base_string,k=32)

以上是关于Python学习之旅--容器的主要内容,如果未能解决你的问题,请参考以下文章

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

Python学习之旅—Day07(生成器与迭代器)

Python的学习之旅———函数对象函数嵌套名称空间与作用域装饰器

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?