IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python编程进阶 高级变量(看完就会了) -> 正文阅读

[Python知识库]Python编程进阶 高级变量(看完就会了)

一、简介

在这里插入图片描述

1、目标

  • 列表
  • 元组
  • 字典
  • 字符串
  • 公共方法
  • 变量高级

2、知识点回顾

Python 中数据类型可以分为 数字型非数字型
数字型

  • 整型 (int)
  • 浮点型(float
  • 布尔型(bool
    • True 非 0 数 —— 非零即真
    • False 0 * 复数型 (complex)
    • 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题

非数字型

  • 字符串
  • 列表
  • 元组
  • 字典

3、非数字型变量的特点

Python 中,所有 非数字型变量 都支持以下特点:

  • 都是一个 序列 sequence,也可以理解为 容器
  • 取值 []
  • 遍历 for in
  • 计算长度最大/最小值比较删除
  • 链接 +重复 *
  • 切片

二、字符串

字符串:在 单引号 和 双引号 以及三个三引号和三个双引号的内容

  • 字符串的输入和输出
  • input()所有接收的内容都是字符串
  • 字符串的输出:%s
name='张三'
print('这个人的名字叫:%s'%name)

结果:
这个人的名字叫张三

1、下标索引

如果想要获取字符串中某个字符,那么通过下标索引的方式

str1='abcdesf'
print(str1[0])
print(str1[4])

结果:
a e

2、切片

(1)作用

切片 方法适用于 字符串列表元组

  • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
  • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据

在这里插入图片描述

字符串[开始索引:结束索引:步长]

注意

  1. 指定的区间属于 左闭右开[开始索引, 结束索引) => 开始索引 >= 范围 < 结束索引
    起始 位开始,到 结束位的前一位 结束(不包含结束位本身)
  2. 从头开始,开始索引 数字可以省略,冒号不能省略
  3. 到末尾结束,结束索引 数字可以省略,冒号不能省略
  4. 步长默认为 1,如果连续切片,数字和冒号都可以省略

(2)索引的顺序和倒序

  • 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
  • 所谓倒序索引就是 从右向左 计算索引
    • 最右边的索引值是 -1,依次递减

(3)实例

num_str = "0123456789"
# 1. 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])

# 2. 截取从 2 ~ `末尾` 的字符串
print(num_str[2:])

# 3. 截取从 `开始` ~ 5 位置 的字符串
print(num_str[:6])

# 4. 截取完整的字符串
print(num_str[:])

# 5. 从开始位置,每隔一个字符截取字符串
print(num_str[::2])

# 6. 从索引 1 开始,每隔一个取一个
print(num_str[1::2])

#7、倒序切片
# -1 表示倒数第一个字符
#取索引为1到字符串倒数第二个的所有字符序列
print(num_str[1:-1])

# 8. 截取从 2 ~ `\末尾 - 1` 的字符串
print(num_str[2:-1])

# 9. 截取字符串末尾两个字符
print(num_str[-2:])

# 10. 字符串的逆序(面试题)
print(num_str[::-1])

结果
在这里插入图片描述

3、find

检测字符串a是否包含在字符串b中,如果包含,则返回开始的索引值,否则返回-1

find:字符串a是否包含在b中

语法:

b.find(a,start=0,len(b))
            ^
         起始位置(索引)
str='asdgajljflgasajfdsfj'
str1='ga'
print(len(str1))
print(str.find(str1,0,len(str)))
# print(str.find(str1,0,3))

结果:在第三位找到(0,1,2,3)
3

4、index

index和find用法一直,唯一不同的就是当查找的子序列不在另一个字符串中的时候,会报异常

用法:

b.index(a,start=0,len(b))
			^
			起始位置(索引)
str='asdgajljflgasajfdsfj'
str1='ga'
print(str.index(str1,0,len(str)))

结果:在第三位找到(0,1,2,3)
3

5、count

表示子序列在另一个字符串中出现的次数
用法:

a.count(b,start=0,end=len(a))
str='asdgajljflgasajfdsfj'
str1='ga'
print(str.count(str1,0,len(str)))

结果
2

6、其他介绍

在这里插入图片描述在这里插入图片描述upper:

在这里插入图片描述

三、列表

1、列表的定义

  • List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
  • 专门用于存储 一串 信息
  • 列表用 [] 定义,数据 之间使用 , 分隔
  • 列表的 索引0 开始
    • 索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标

创建一个列表,只要把 逗号分隔不同的数据项 使用 方括号 括起来即可。如下所示:

a、定义列表变量:
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

b、取列表元素的值
print(list[0])       # 这里[0] 表示取索引位0的元素,即第一个数
print(type(list[0])) #查看类型

注意:从列表中取值时,如果 超出索引范围,程序会报错
在这里插入图片描述

2、列表常用操作类型

在这里插入图片描述

3、增加元素

(1)append

把新的元素追加到了列表的末尾

name_list=['杨浩','单赛','静初']
name_list.append('杨威')
print(name_list)
name_list.append('魏富强')
print(name_list)

结果:
['杨浩', '单赛', '静初', '杨威']
['杨浩', '单赛', '静初', '杨威', '魏富强']

(2)extend

把新的列表添加到原来的列表中,把新的列表中的元素添加到了原来列表的末尾

name_list=['杨浩','单赛','静初']
name_new=['易怀玲','朱艳涛']
name_list.extend(name_new)
print(name_list)

结果:
['杨浩', '单赛', '静初', '易怀玲', '朱艳涛']

(3)insert

(index,new)在列表的指定位置,添加新元素,如果添加的是一个字符串,那么就在原来的列表中添加这个元素,如果添加的是一个列表, 那么在指定的位置把整个列表添加进去

name_list=['杨浩','单赛','静初']
name_new=['易怀玲','朱艳涛']

name_list.insert(1,'董泽坤')
print(name_list)

name_list.insert(1,name_new)
print(name_list)

结果:
['杨浩', '董泽坤', '单赛', '静初']
['杨浩', ['易怀玲', '朱艳涛'], '董泽坤', '单赛', '静初']

4、删除元素

(1)del

根据下标索引,删除元素

name_list=['杨浩','单赛','静初']
del name_list[0]
print(name_list)

结果:
['单赛', '静初']

(2)pop

默认情况下,删除最后一个元素,也可以删除指定位置的元素

name_list=['杨浩','单赛','静初']
name_list.pop()
print(name_list)

name_list=['杨浩','单赛','静初']
name_list.pop(1)
print(name_list)

结果:
['杨浩', '单赛']
['杨浩', '静初']

(3)remove

根据列表中元素的值进行删除

name_list=['杨浩','单赛','静初','董泽坤']
name_list.remove('董泽坤')
print(name_list)

5、修改元素

获取列表里的列表的元素
语法:list[index][index]

name_list=['杨浩','单赛','静初']
print(name_list[1][0])

结果:
单

修改列表中的元素
语法:list[index]=new

name_list=['杨浩','单赛','静初']
name_list[1]='朱艳涛'
print(name_list)

结果:
['杨浩', '朱艳涛', '静初']

6、查询元素

(1)index

查看元素是否在列表中,如果不在,则抛出异常

name_list=['杨浩','单赛','静初']
name_index=name_list.index('静初',0,len(name_list))
print(name_index)
结果:
2

(2)count

数据在列表中出现的次数

语法:列表.count(数据)

name_list=['杨浩','单赛','静初']
name_count=name_list.count('静初')
print(name_count)

结果:
1

(3)len

计算容器中元素个数

语法:len(item)

name_list=['杨浩','单赛','静初','董泽坤']
print(len(name_list))

结果:
4

(4)if 数据 in 列表

判断元素是否在列表中

  • in :如果元素存在列表中,那么返回true,否则返回false
  • not in :与in相反
name_list=['杨浩','单赛','静初','董泽坤']
if '杨洁' in name_list:
    print('存在')
else:
    print('不存在')

结果:
存在

7、 排序

(1)sort

将list按特定顺序重新排列,默认从小到大,参数 reverse=True 可改为倒序,从大到小。

(2)reverse

将list倒置

list=[2,5,1,6,8,2,0]
list.sort(reverse=True)
print(list)
list.reverse()
print(list)

结果:
[8, 6, 5, 2, 2, 1, 0]
[0, 1, 2, 2, 5, 6, 8]

8、循环遍历

遍历 就是 从头到尾 依次 从列表中获取数据

循环体内部 针对 每一个元素,执行相同的操作

在 Python 中为了提高列表的遍历效率,专门提供的 迭代 iteration 遍历

使用 for 就能够实现迭代遍历

# for 循环内部使用的变量 in 列表
for name in name_list:

    循环内部针对列表元素进行操作
    print(name)

应用场景

尽管 Python 的 列表 中可以 存储不同类型的数据,但是在开发中,更多的应用场景是

  • 列表 存储相同类型的数据
  • 通过 迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作

四、元组

1、 元组的定义

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

写法:

info_tuple = ("zhangsan", 18, 1.75)

创建空元组
info_tuple = ()

元组中只包含一个元素时,需要"在元素后面添加逗号"
info_tuple = (50, )

在这里插入图片描述

2、元组常用操作

  • ipython3 中定义一个 元组,例如:info = ()
  • 输入 info. 按下 TAB 键,ipython 会提示 元组 能够使用的函数如下:
info.count  info.index
tuple1=()
print(type(tuple1))

(1)访问元组

通过下标索引访问,下标从0开始

tuple1=('张三','wang',23,56,3.4)
print(tuple1)
print(tuple1[0])
print(tuple1[2])

结果:
('张三', 'wang', 23, 56, 3.4)
张三
23

(2)修改元组

元组中的元素值是不允许修改的,但是可以对元组进行拼接

tuple1=('张三','wang',23,56,3.4)
tuple1=(1,2,3)
tuple2=(4,5,6)
tuple3=tuple1+tuple2
print(tuple3)

结果:

(3)删除元组

元组中的元素值是不允许删除的,但是可以删除整个元组
元组被删除后,输出变量会有异常信息

del tuple3

3、循环遍历

  • Python 中,可以使用 for 循环遍历所有非数字型类型的变量:列表元组字典 以及 字符串
  • 提示:在实际开发中,除非 能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多
  • 取值 就是从 元组 中获取存储在指定位置的数据
  • 遍历 就是 从头到尾 依次元组 中获取数据

(1)语法

# for 循环内部使用的变量 in 元组
for item in info:

    循环内部针对元组元素进行操作
    print(item)

实例:

方式一
tuple1=('张三','wang',23,56,3.4)
for temp in tuple1:
    print(temp)

方式二
tuple1=('张三','wang',23,56,3.4)
i=0
while i<len(tuple1):
    print(tuple1[i])
    i+=1

结果是一样

(2)应用场景

  • 尽管可以使用 for in 遍历 元组
  • 但是在开发中,更多的应用场景是:
    • 函数的 参数 和 返回值,一个函数可以接收 任意多个参数,或者 一次返回多个数据
      • 有关 函数的参数 和 返回值,在后续 函数高级 给大家介绍
    • 格式字符串,格式化字符串后面的 () 本质上就是一个元组
    • 让列表不可以被修改,以保护数据安全
info = ("zhangsan", 18)
print("%s 的年龄是 %d" % info)

4、元组和列表之间的转换

  • 使用 list 函数可以把元组转换成列表
list(元组) 
  • 使用 tuple 函数可以把列表转换成元组
tuple(列表)

五、 字典

1、 字典的定义

  • dictionary(字典) 是 除列表以外 Python 之中 最灵活 的数据类型
  • 字典同样可以用来 存储多个数据
  • 通常用于存储 描述一个 物体 的相关信息
  • 和列表的区别
    • 列表有序 的对象集合
    • 字典无序 的对象集合
  • 字典用 {} 定义
  • 字典使用 键值对 存储数据,键值对之间使用 , 分隔
    • key 是索引
    • value 是数据 * 之间使用 : 分隔
    • 键必须是唯一的
    • 可以取任何数据类型,但 只能使用 字符串数字元组

用法:

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

2 、字典常用操作

在这里插入图片描述

  • ipython3 中定义一个 字典,例如:xiaoming = {}
  • 输入 xiaoming. 按下 TAB 键,ipython 会提示 字典 能够使用的函数如下:
In [1]: xiaoming.
xiaoming.clear       xiaoming.items       xiaoming.setdefault
xiaoming.copy        xiaoming.keys        xiaoming.update
xiaoming.fromkeys    xiaoming.pop         xiaoming.values
xiaoming.get         xiaoming.popitem    

3.3 循环遍历

(1)语法

遍历 就是 依次字典 中获取所有键值对

可以通过for循环获取字典中的元素(k-v)

  • keys():获取字典中所有的key键
  • values():获取字典中所有的value值
  • items():获取字典中的key-value键值对
dict={'name':'jim','id':1001,'address':'北京','age':19}
print(dict['name'])

print(dict.get('age',15))

for k in dict.keys():
    print(k)

for v in dict.values():
    print(v)

for k in dict.items():
    print(k)

(2) 应用场景

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

六、公共方法

1、 Python 内置函数

Python 包含了以下内置函数:

函数描述备注
len(item)计算容器中元素个数
del(item)删除变量del 有两种方式
max(item)返回容器中元素最大值如果是字典,只针对 key 比较
min(item)返回容器中元素最小值如果是字典,只针对 key 比较
cmp(item1, item2)比较两个值,-1 小于/0 相等/1 大于Python 3.x 取消了 cmp 函数

注意

  • 字符串 比较符合以下规则: “0” < “A” < “a”

2、切片

切片“0123456789”[::-2]“97531”字符串、列表、元组
描述Python 表达式结果支持的数据类型
  • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
  • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据

3、运算符

运算符Python 表达式结果描述支持的数据类型
+[1, 2] + [3, 4][1, 2, 3, 4]合并字符串、列表、元组
*[“Hi!”] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重复字符串、列表、元组
in3 in (1, 2, 3)True元素是否存在字符串、列表、元组、字典
not in4 not in (1, 2, 3)True元素是否不存在字符串、列表、元组、字典
> >= == < <=(1, 2, 3) < (2, 2, 3)True元素比较字符串、列表、元组

注意

  • in 在对 字典 操作时,判断的是 字典的键
  • innot in 被称为 成员运算符

成员运算符

成员运算符用于 测试 序列中是否包含指定的 成员

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False3 in (1, 2, 3) 返回 True
not in如果在指定的序列中没有找到值返回 True,否则返回 False3 not in (1, 2, 3) 返回 False

注意:在对 字典 操作时,判断的是 字典的键

4、完整的 for 循环语法

  • Python 中完整的 for 循环 的语法如下:
for 变量 in 集合:
    
    循环体代码
else:
    没有通过 break 退出循环,循环结束后,会执行的代码

应用场景

  • 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
  • 需求:要判断 某一个字典中 是否存在 指定的 值
    • 如果 存在,提示并且退出循环
    • 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
students = [
    {"name": "阿土",
     "age": 20,
     "gender": True,
     "height": 1.7,
     "weight": 75.0},
    {"name": "小美",
     "age": 19,
     "gender": False,
     "height": 1.6,
     "weight": 45.0},
]

find_name = "阿土"

for stu_dict in students:

    print(stu_dict)

    # 判断当前遍历的字典中姓名是否为find_name
    if stu_dict["name"] == find_name:
        print("找到了")

        # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较
        break

else:
    print("没有找到")

print("循环结束")
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:38:21  更:2021-08-23 16:38:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 11:55:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计