Python教程4
Python教程4
1.列表
# -*-coding:utf-8-*- # 定义列表 变量名 = ["char1","char2",....] 用来存储一串信息,用逗号分隔。 # 索引从0开始,取值是: 变量名[索引编号] name_list = ["张三", "李四", "王五"] # 查询 print(name_list[2]) # 取值【取值】 print(name_list) # 取值所有【取值】 print(name_list.index("李四")) # 取索引【取值】 # 修改 name_list[1] = "dd" # 修改指定索引的数据【修改】 print(name_list) # 增加 name_list.append("路六") # 在末尾增加数据【增加】 print(name_list) name_list.insert(1, "小梅") # 在指定索引位置插入数据【增加】 print(name_list) temp_list = ["孙悟空", "朱二哥", "沙弟"] name_list.extend(temp_list) # 将其他列表完整类容增加到当前列表末尾【增加】 print(name_list) # 删除 name_list.remove("dd") # 删除指定内容,如果该元素出现多次,会删除第一个 print(name_list) name_list.pop() # 默认删除最后一个元素 print(name_list) name_list.pop(4) # 删除指定的索引位置元素 print(name_list) name_list.clear() # 清空列表 print(name_list) name_list1 = ["张三1", "李四1", "王五1"] del name_list1[1] # del关键字从内存中删除指定索引的元素,后续代码不能再使用(建议不用,科普) print(name_list1) # 列表数据的统计 name_list2 = ["张三2", "李四2", "王五2", "张三2"] list_len = len(name_list2) # 列表长度 print("列表中有%d个元素" % list_len) count = name_list2.count("张三2") # 统计指定元素出现的次数 print("张三2出现的次数%d" % count) # 列表的排序 name_list3 = ["张三1", "张三2", "张三1", "张三3"] name_list3.sort() # 升序排列 print(name_list3) name_list3.sort(reverse=True) # 降序排列 (思考:是再升序的结果再降序,还是再原列表进行降序排列) print(name_list3) # 逆序(反转) name_list4 = ["张三4", "张三2", "张三1", "张三0"] name_list4.reverse() # 对列表进行逆序 print(name_list4) # 循环遍历 (迭代遍历) name_list5 = ["张三4", "张三6", "张三2", "张三0"] for i in name_list5: print("我的名字是%s" % i)
2.元组
# -*-coding:utf-8-*- # 元组变量,定义的元组变量内容是不能修改的 info_tuple = ("张三", 18, 1.75, 18, "nihao") # 定义的元组变量 变量名 = (元素1,元素2,....) 。索引从0开始 print(type(info_tuple)) # 查看变量类型 empty_tuple = () # 定义一个空元组 single_tuple = (5,) # 定义一个元素的元组变量 如果后面不加“,”这是一个整型变量 print(info_tuple[1]) # 取指定索引的元组元素值 print(info_tuple) # 取元组的所有的元素 print(info_tuple.index(1.75)) # 元组取索引 print(info_tuple.count(18)) # 统计元素再元组中出现的次数 print(len(info_tuple)) # 统计元组的元素的个数 print("-----------------------") for i in info_tuple: # print("这是元组中的元素%s" % i)#这个不建议使用,因为元组中通常保存的数据类型不一样,而列表一般保存时一样的类型数据 print(i) """"" 元组的应用场景: 作为函数的参数和返回值(可以接收多个参数或者返回值) 格式字符串,格式字符串后面的()本质就是一个元组 让列表不可以被修改,保护数据安全 """ # 元组和格式化字符串 print("%s 年龄是%d 身高是%.2f" % ("小明", 18, 1.75)) # 括号内("小明",18,1.75)本质就是个元组 info_tuple1 = ("小明", 18, 1.75) print("%s 年龄是%d 身高是%.2f" % info_tuple1) instr = "%s 年龄是%d 身高是%.2f" % info_tuple1 print(instr) # 元组和列表之间的转换 num_list = [1, 2, 4, 9] num_tuple = tuple(num_list) # 转换为元组 print(type(num_tuple)) num2_list = list(num_tuple) # 转换为列表 print(type(num2_list))
3.字典
# -*-coding:utf-8-*- """"" 字典是除列表之外最灵活的数据类型,同样可以存储多个数据类型 列表是有序的对象集合 字典是无序的对象集合 字典用{}定义,字典使用键值对存储数据,键值对之间用,号分割 键是索引,值是数据,键与值之间用:分割, 键必须唯一的,值可以取任何数据类型。但键只能使用字符串,数字或元组 """ xiaoming = {"name": "小明", "age": 18, "gender": True, "身高": 1.75 } print(xiaoming) print(xiaoming["age"]) # 指定Key取值 xiaoming["家乡"] = "四川" # 向字典中新增加内容 print(xiaoming) xiaoming["身高"] = 1.83 # 修改字典中的内容 print(xiaoming) xiaoming.pop("age") # 删除key=age的键值对 print(xiaoming) print(len(xiaoming)) # 统计键值对的数量 temp_dict = {"weight": 140, "name": 30} xiaoming.update(temp_dict) # 键值对的合并,如果出现已有的键值对,会更新原来的 print(xiaoming) xiaoming.clear() # 清空字典 print(xiaoming) # 字典的循环遍历,变量k是键值对的key xiaoming2 = {"name2": "小明2", "age2": 182, "gender2": True, "身高2": 1.752 } for k in xiaoming2: print("%s : %s" % (k,xiaoming2[k])) """" 字典的应用场景 多个键值对存储描述一个物体的相关信息 将多个字典存放再一个列表中 """ card_list = [ {"name":"张三", "qq":"123456", "phone":"110"}, {"name":"李四", "qq":"13224256", "phone":"119" } ] for card_info in card_list: print(card_info)
4.字符串
# -*-coding:utf-8-*- str1 = "hello python" num_str = "1233" str2 = '我的外号是"大西瓜"' # 一般还是建议使用双引号 print(str2) print(str1[6]) for i in str2: print(i) hllo_str = "hello hello" print(len(hllo_str)) # 统计长度 print(hllo_str.count("he")) # 统计某个字符或小字符串的长度(子字符串) print(hllo_str.index("o")) # 统计某个字符串的索引 print(str1.isspace()) # 判断是否空格,只有空格返回True print(num_str) # 判断字符串是否只包含数字,不能判断小数 print(num_str.isdecimal()) print(num_str.isdigit()) # 还能判断(1)如:num_str1="(1)" 称为unicode 字符串 再如num_str2 = "\u00b2" print(num_str.isnumeric()) # 还包括汉字数字如:num_str3 = "一千零一" # 字符串的查找方法 print("字符串的查找方法") print(str1.startswith("he")) # 判断字符串以什么开头的方法,区分大小写 print(str1.endswith("n")) # 判断字符串以什么结束 print(str1.find("llo")) # 查找子字符串的索引,如果字符不存在输出为-1 ,而str1.index()方法报错 print(str1.replace("lo", "nb")) # 该方法执行完后,会返回一个新字符串。不会修改原字符串的内容。 # 字符串文本对齐方法 poem = ["登黄鹤楼", "王之涣", "白日依山尽", "黄河入海流", "欲穷千里目", "更上一层楼" ] for poem_str in poem: print("|%s|" % poem_str.center(10, " ")) # center方法居中 引号空格是填充内容 # print("|%s|" % poem_str.ljust(10)) #ljust方法左对齐 # print("|%s|" % poem_str.rjust(10)) #rjust方法右对齐 # 去除空白字符 \t \r \n 都是空格 print("去除空白字符方法测试------") poem1 = ["\t\n登黄鹤楼", "王之涣", "白日依山尽", "黄河入海流\t\n", "欲穷千里目", "更上一层楼" ] for poem_str1 in poem1: print("|%s|" % poem_str1.strip().center(10, " ")) # .strip()方法去除空白字符 # 字符串的拆分和连接方法 print("字符串的拆分和连接方法测试-----") poem2 = "登黄鹤楼\t王之涣\t白日依山尽\t\n黄河入海流\t\t欲穷千里目\t\n更上一层楼" poem_list = poem2.split() # split()拆分方法,默认空格为分割符 print(poem_list) result = " ".join(poem_list) # 以空格为分割符进行合并 print(result) # 字符串利用索引进行切片 print("字符串利用索引截片") num_st = "0123456789" print(num_st[2:6]) # 截取2到6,默认的索引6不会获取 print(num_st[0:6]) print(num_st[2:]) # 截取2到字符串末尾 print(num_st[:6]) # 截取前6个数 print(num_st[:]) # 截取完整的字符串 print(num_st[::2]) # 截取每隔一个字符一个 2是步长 print(num_st[1::2]) # 从1开始每隔一个字符截取 print(num_st[-1]) # 截取倒数一个字符 print(num_st[2:-1]) # 从2开始,不包括最后一个字符 print(num_st[-2:]) # 截取后面2个字符 print(num_st[9::-1]) # 逆序截取字符串 print(num_st[::-1]) # 表示从右向左切 """" 切片的输出: 2345 012345 23456789 012345 0123456789 02468 13579 9 2345678 89 9876543210 9876543210 """