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的学习之旅———函数对象函数嵌套名称空间与作用域装饰器