012高级类型变量

目标:
1、列表
2、元组
3、字典
4、字符串
5、公共方法
6、高级变量

在python中,所有 非数字型变量 都有以下特点:
①都是一个 序列sequence,也可以理解为容器
②取值[]
③遍历for in
④计算长度、最大/最小值、比较、删除
⑤连接+ 和 重复*
⑥切片

一、列表
· List(列表)是python中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
· 专门用于存储一串信息
· 列表用[]定义,数据 之间使用“,”分隔
· 列表的 索引 从0开始(索引 就是数据在 列表 中的位置编号,又可以被称为 下标)
如:name_list = [“zhangsan”,“lisi”,“wangwu”]
请添加图片描述
1、列表方法

name_list = ["zhangsan", "lisi", "wangwu"]

# 1、取值和取索引
# list index out of range - 列表索引超出范围
print(name_list[0])

# 知道数据的内容,想确定数据在列表中的位置
# 使用index方法需要注意,如果传递的数据不在列表中,程序会报错!
print(name_list.index("wangwu"))

# 2、修改
name_list[1] = "李四"
# list assigment index out of range
# 列表指定的索引超出范围,程序会报错!
# name_list[3] = "王小二"

# 3、增加
# append 方法可以向列表的末尾追加数据
name_list.append("王小二")
# insert 方法可以在列表的指定索引位置插入数据
name_list.insert(1, "李晓丹")
# extend 方法可以把其他列表中的完整内容,追加到当前列表的末尾
temp_list = ["孙悟空", "猪八戒", "沙师弟"]
name_list.extend(temp_list)

# 4、删除
# remove 方法可以从列表中删除指定的数据
name_list.remove("wangwu")
# pop 方法默认可以把列表中最后一个元素删除
name_list.pop()
# pop 方法可以指定要删除元素的索引
name_list.pop(3)
# clear 方法可以清空列表
name_list.clear()

print(name_list)

2、了解 del 关键字

name_list = ["张三", "李四", "王五"]

# (知道)使用 del 关键字(delete)删除列表元素
# 提示:在日常开发中,要从列表删除数据,建议使用列表提供的方法

# del 关键字本质上是用来将一个变量从内存中删除的
# 注意:如果使用 del 关键字将变量从内存删除
# 后续的代码就不能再使用这个变量了
del name_list[1]

print(name_list)

3、列表的数据统计

name_list = ["张三", "李四", "王五", "王小二", "张三"]
print(name_list)

# len(length 长度) 函数可以统计列表中元素的总数
list_len = len(name_list)
print("列表中包含 %d 个元素" % list_len)

# count 方法可以统计列表中某一个数据出现的次数
count = name_list.count("张三")
print("张三出现了 %d 次" % count)

# 从列表中删除数据(第一次出现的数据)
name_list.remove("张三")

print(name_list)

4、列表排序

name_list = ["zhangsan", "lisi", "wangwu", "wangxiaoer"]
num_list = [2, 5, 3, 8, 5]

# 升序
name_list.sort()
num_list.sort()

# 降序
name_list.sort(reverse=True)
num_list.sort(reverse=True)

# 逆序(反转)
name_list.reverse()
num_list.reverse()

print(name_list)
print(num_list)

5、迭代遍历
· 在python中,可以使用for循环遍历所有非数字类型的变量:列表、元组、字典 以及 字符串。

name_list = ["张三", "李四", "王五", "王小二"]

# 使用迭代从列表中依次获取数据
"""
顺序的从列表中依次获取数据,每一次循环过程中,数据都会保存在my_name这个变量中,
在循环体颞部可以访问到当前这一次获取到的数据
for 循环内部使用的变量 in 列表:
for my_name in name_list:
    
    循环内部针对列表元素进行操作
    print(my_name)
"""

for my_name in name_list:

    print("我的名字叫 %s" % my_name)

6、列表应用场景
· 尽管python的 列表 中可以 存储不同类型的数据
· 但是在开发中,更多的应用场景是:
①列表 存储相同类型的数据
②通过 迭代遍历,在循环内部,针对列表中的每一项元素,执行相同的操作。

二、元组
· Tuple(元组)与列表类似,不同之处在于元组的 元素不能修改
。元组 表示多个元素组成的序列
。元组 在 python 开发中,有特定的应用场景
· 用于存储 一串 信息,数据 之间使用“,”分隔
· 元组用()定义
· 元组的 索引 从0开始
。索引 就是数据在 元组 中的位置编号

1、元组的定义
①创建空元组(一般不用)

info_tuple = ()

②元组中 只包含一个元素时,需要在元素后面添加逗号

info_tuple = (5,)

③定义元组

info_tuple = ("zhangsan", 15, 5, 23)

2、元组的常用操作

info_tuple = ("zhangsan", 13, 1.75, "zhangsan")

# 1、取值和取索引
# 取值——元组名[]
print(info_tuple[0])
# 取索引——元组名.index("内容")
# 已经知道数据的内容,希望知道数据在元组中的索引
print(info_tuple.index("zhangsan"))

# 2、统计计数
print(info_tuple.count("zhangsan"))
# 统计元组中包含元素的个数
print(len(info_tuple))

3、循环遍历
· 在python中,可以使用for循环遍历所有非数字类型的变量:列表、元组、字典 以及 字符串。
· 提示:在实际开发中,除非 能够确认元组中的数据类型,否则针对元组的循环遍历需求不是很多。

info_tuple = ("zhangsan", 45, 1.35)

# 使用迭代遍历元组
for my_info in info_tuple:

    # 使用格式字符串拼接 my_info 这个变量不方便
    # 因为元组中保存的数据类型通常是不同的
    print(my_info)

4、应用场景
· 尽管可以使用for in遍历 元组。
· 但是在开发中,更多的应用场景是:
。函数的 参数 和 返回值,一个函数可以接收 任意多个参数,或者 一次返回多个数据。
。格式字符串,格式化字符串后面的()本质上就是一个元组。
。让列表不可以被修改,以保护数据安全。

info_tuple = ("小明", 21, 1.34)

# 格式化字符串后面的()本质上就是元组
print("%s 年龄是 %d 身高是 %.2f" % info_tuple)

5、元组和列表之间的转换
· 使用 list 函数可以把元组转换成列表

list(元组)

· 使用 tuple 函数可以把列表转换成元组

tuple(列表)

三、字典
· 字典 是 除列表以外python中 最灵活 的数据类型
· 字典同样可以用来 存储多个数据
。通常用于存储用于描述 一个物体 的相关信息
· 和列表的区别
。列表 是 有序 的对象集合
。字典 是 有序 的对象集合
· 字典用{}定义

xiaoming = {"name":"小明","age":18,"gender":True,"height":1.75}

· 字典使用 键值对 存储数据,键值对之间使用",“分隔
。键key是索引
。值value是数据
。键 和 值 之间使用”:"分隔
。键必须是唯一的
。值 可以是任何数据类型,但 键 只能使用 字符串、数字 或 元组

1、字典的增删改查常用操作

xiaoming_dic = {"name": "小明"}

# 1、取值
print(xiaoming_dic["name"])
# 在取值的时候,如果指定的key不存在,程序会报错
# print(xiaoming_dic["name123"])

# 2、增加/修改
# 如果key不存在,会新增键值对
xiaoming_dic["age"] = 18
# 如果key存在,会修改已经存在的键值对
xiaoming_dic["name"] = "小小明"

# 3、删除
xiaoming_dic.pop("name")
# 在删除指定键值对时,如果指定的key不存在,程序会报错!
# xiaoming_dic.pop("name123")

print(xiaoming_dic)

2、字典的统计、合并、清空

xiaoming_dic = {"name": "小明",
                "age": 18}

# 1、统计键值对数量
print(len(xiaoming_dic))

# 2、合并字典
temp_dic = {"height": 75,
            "age": 20}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dic.update(temp_dic)

# 3、清空字典
xiaoming_dic.clear()

print(xiaoming_dic)

3、字典的循环遍历

xiaoming_dic = {"name": "小明",
                "qq": 254225,
                "phone": 10086}

# 迭代遍历字典
# 变量k是每一次循环中,获取到的键值对key
for k in xiaoming_dic:

    print("%s - %s" %(k, xiaoming_dic[k])

4、字典和列表组合的应用场景
· 尽管可以使用for in 遍历 字典
· 但是在开发中,更多的应用场景是:
。使用 多个键值对,存储 描述一个 物体 的 相关信息——描述更复杂的数据信息
。将 多个字典 放在一个列表 中,再进行遍历,在循环体内部针对每一个字典进行 相同的处理

#  使用 多个键值对,存储 描述一个 物体 的 相关信息——描述更复杂的数据信息
#  将 多个字典 放在一个列表 中,再进行遍历,在循环体内部针对每一个字典进行 相同的处理
card_list = [
    {"name": "张三",
     "qq": 12345,
     "phone": 110},
    {"name": "李四",
     "qq": 54321,
     "phone": 10086
    }
]

for card_info in card_list:

    print(card_info)

四、字符串
· 字符串 就是 一串字符,是编程语言中表示文本的数据类型
· 在python中可以使用 一对双引号 或者 一对单引号 定义一个字符串
。实际开发中,大多数编程语言都是用“来定义字符串,如果字符串内部需要使用",可以使用‘定义字符串
· 可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从0开始
· 也可以使用for循环遍历 字符串中每一个字符

str1 = "hello python"
str2 = '我的外号是“椰子'

print(str2)
print(str1[2])

# 字符串的遍历
for c in str2:

    print(c)

1、字符串的常用操作
· len(字符串)——获取字符串的长度
· 字符串.count(字符串)——小字符串在大字符串中出现的次数
· 字符串[索引]——从字符串中取出单个字符
· 字符串.index(字符串)——获取小字符串第一次出现的索引

hello_str = "hello hello"

# 1、统计字符串长度
print(len(hello_str))

# 2、统计某一个小(子)字符串出现的次数
print(hello_str.count("llo"))
# 程序中没有的话不会报错
print(hello_str.count("abc"))

# 3、某一子字符串出现的位置
print(hello_str.index("llo"))
# 注意:如果使用index方法传递的子字符串不存在,程序会报错
# print(hello_str.index("abc"))

2、判断类型(9个)
请添加图片描述
· isspace()也可以判断\t,\n,\r

# 1、判断空白字符
space_str = "    \t\n\r"

print(space_str.isspace())

# 2、判断字符串是否只包含数字
# 1>都不能判断小数
# num_str = "1.1"
# 2>nuicode 字符串
# num_str = "\u00b2"
# 3>中文数字
num_str = "椰子"

print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())

3、查找和替换
请添加图片描述

hello_str = "hello world"

# 1、判断是否以指定字符串开始
print(hello_str.startswith("hello"))

# 2、判断是否以指定字符串结束
print(hello_str.endswith("world"))

# 3、查找指定字符串
# index方法同样可以查找指定的字符串在大字符串中的索引
print(hello_str.find("llo"))
# index 方法如果指定的字符串不存在,会报错
# find 如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))

# 4、替换字符串
# replace 方法执行完成后,会返回一个新的字符串
# 注意:不会修改原有字符串的内容
print(hello_str.replace("world", "python"))

print(hello_str)

4、文本对齐
请添加图片描述

# 要求:顺序并且居中对齐输出以下内容
poem = ["登鹳雀楼",
        "王之涣",
        "白日依山尽",
        "黄河入海流",
        "欲穷千里目",
        "更上一层楼"]

for poem_str in poem:

    # 居中对齐
    # print("|%s|" % poem_str.center(10, " "))
    # 相左对齐
    # print("|%s|" % poem_str.ljust(10, " "))
    # 向右对齐
    print("|%s|" % poem_str.rjust(10, " "))

5、去除空白字符
请添加图片描述

# 要求:顺序并且居中对齐输出以下内容
poem = ["\t\n登鹳雀楼",
        "王之涣",
        "白日依山尽\t\n",
        "黄河入海流",
        "欲穷千里目",
        "更上一层楼"]
        
    # 先使用strip方法去除字符串中的空白字符
    # 再使用center方法居中显示文本
    print("|%s|" % poem_str.strip().center(10, " "))

6、拆分和连接
请添加图片描述
7、字符串的切片
· 切片 方法适用于 字符串、列表、元组
。切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
。列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
。字典 是一个 无序 的集合,是使用 键值对 保存数据
请添加图片描述请添加图片描述
五、公共方法
列表、元组、字典、字符串都可以使用的方法。
1、python内置函数
请添加图片描述
· 注意:
。字符串 比较符合以下规则:“0” < “A” < “a”
。字典不能比较大小
。del两种用法:
a.关键字 del a[1]
b.函数 del(a[1])

2、切片
请添加图片描述
3、运算符
请添加图片描述
· 注意
。in 在对 字典 操作时,判断的是 字典的键
。in 和 not in 被称作 成员运算符
。extend 和 qppend 也可以进行拼接,不同的是不直接输出结果

t_list = [1,2]
t_list.extend([3,4])
print(t_list)

输出:[1,2,3,4]

t_list = [1,2,3,4]
t_list.append([8,9])
print(t_list)

输出:[1,2,3,4,[8,9]]

4、完整的for循环语法
请添加图片描述

for num in [1, 2, 3]:

    print(num)

    if num == 2:

        break

else:
    # 如果循环体内部使用break退出了循环
    # else下方的代码就不会被执行
    print("会执行吗?")

print("循环结束")

六、高级变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值