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
"""

 

posted @ 2018-11-01 11:22  君,子觞  阅读(243)  评论(0编辑  收藏  举报