派派派森02

目录

1.容器

1.列表

2.元组

3.字符串

3.序列

4.集合

5.字典

2.数据容器通用操作

• max最大元素

• min最小元素

• 容器的通用转换功能

• 通用排序功能

3.字符串大小比较

4.函数中多个返回值

5.函数参数多种传递方式

1.位置参数

2.关键字参数

3.缺省参数

4.不定长参数

6.匿名函数

1.函数作为参数传递

2.lambda匿名函数

7.文件的操作

1.文件的读取

2.文件的写操作

3.文件的追加

8.异常的捕获

1.捕获常规异常

2.捕获指定异常

3.捕获多个异常

4.捕获所有异常

5.异常else

6.异常的finally

9.异常的传递

10.模块

1.模块的导入方式

2.自定义模块

11.包

导入包


1.容器
1.列表

基本语法:

# 字面量

[元素1, 元素2, 元素3,  元素4, ...]

# 定义变量

变量名称 = [元素1, 元素2, 元素3, 元素4, ...]

# 定义空列表

变量名称 = [ ] 

变量名称 = list( )

列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套

列表的下标索引:

  • 从前向后的方向,编号从0开始:0 1 2 3 4...
  • 从后向前的方向,编号从-1开始:-1 -2 -3 -4...

列表的查询功能(方法)

  • 查找某元素的下标
    功能:查找指定元素在列表的下标,如果找不到,报错ValueError
    语法:列表.index(元素)
    index就是列表对象(变量)内置的方法(函数)
  • 修改特定位置(索引)的元素值:
    语法:列表[下标] = 值
  • 插入元素
    语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
  • 追加元素
    方式1:列表.append(元素),将指定元素,追加到列表的尾部
    方式2:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部
                 list1 = [1, 2, 3]
                 list2 = [4, 5, 6]
                 list1.extend(list2)
                 print(list1)   # [1,2,3,4,5,6]
  • 删除元素
    语法1:del列表[下标]
    语法2:列表.pop(下标)
  • 删除某元素在列表中的第一个匹配项
    语法:列表.remove(元素)
  • 清空列表内容
    语法:列表.clear()
  • 统计某元素在列表内的数量
    语法:列表.count(元素)
  • 统计列表内,有多少元素
    语法:len(列表)
2.元组

元组同列表一样,都是可以封装多个、不同类型的元素在内,但最大的不同点在于:元组一旦定义完成,就不可修改

元组定义

# 定义元组字面量

(元素, 元素, ......, 元素)

# 定义元组变量

变量名称 = (元素, 元素, ......, 元素)

# 定义空元组

变量名称 = ()        # 方式1

变量名称 = tuple()        # 方式2

注意:元组只有一个数据,这个数据后面要添加逗号,否则不是元组类型

t2 = ('Hello',)

增加、删除、修改操作不成功,但是如果元组里面嵌套了list,这个list里面是可以修改的。

3.字符串

同元组一样,字符串也是不可修改的容器

  • 字符串的替换
    语法:字符串.replace(字符串1,字符串2)
    功能:将字符串内的全部:字符串1替换为字符串2
    注意:不是修改字符串本身,而是得到了一个新的字符串
  • 字符串的分割
    语法:字符串.split(分隔字符串)
    功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
    注意:字符串本身不变,而是得到了一个列表对象
  • 字符串的规整操作(去前后空格)
    语法:字符串.strip()
  • 字符串的规整操作(去前后指定字符串)
    语法:字符串.strip(字符串)
    注意,传入的是"12",其实就是:"1"和"2"都会移除,是按照单个字符
  • count()
  • len()
  • index()
3.序列

序列是指:内容连续、有序,可使用下标索引的一类数据容器

列表、元组、字符串,均可以视为序列

  • 切片:从一个序列中,取出一个子序列
    语法:序列[起始下标:结束下标:步长]
    表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列
      • 起始下标表示从何处开始,可以留空,留空视作从头开始
      • 结束下标(不含)表示从何处结束,可以留空,留空视作取到结尾
      • 步长表示,依次取元素的间隔 留空视作1
               • 步长为1表示,一个个去元素
               • 步长为2表示,每次跳过1个元素取
               •  步长N表示,每次跳过N-1个元素取
               •  步长为负数表示,反向取
4.集合

基本语法

# 定义集合字面量

{元素, 元素, ......, 元素}

# 定义集合变量

变量名称 = {元素, 元素, ......, 元素}

# 定义空集合

变量名称 = set()

和列表、元组、字符串等定义基本相同

  • 列表使用:[]
  • 元组使用:()
  • 字符串使用:""
  • 集合使用:{}

首先因为集合是无序的,所以集合不支持:下标索引访问,但是集合和列表一样,是允许修改的。

  • 添加新元素
    语法:集合.add(元素) 将指定元素,添加到集合内
    结果:集合本身被修改,添加了新元素
  • 从集合中随机取出元素
    语法:集合.pop() 
    结果:会得到一个元素的结果。同时集合本身被修改,元素被移除
  • 清空集合
    语法:列表.clear()
    结果:集合本身被清空
  • 取出2个集合的差集
    语法:集合1.difference(集合2)  功能:取出集合1和集合2的差集(集合1有而集合2没有)
    结果:得到一个新集合,集合1和集合2不变
  • 消除2个集合的差集
    语法:集合1.difference_update(集合2)
    功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素
    结果:集合1被修改,集合2不变
  • 2个集合合并
    语法:集合1.union(集合2)
    功能:将集合1和集合2组合成新集合
    结果:得到新集合,集合1和集合2不变
  • len()
5.字典

字典的定义,同样使用{},不过存储的元素是一个个的:键值对

# 定义字典字面量
{key: value, key: value, ..., key: value}

# 定义字典变量

my_dict = {key: value, key: value, ..., key: value}

# 定义空字典

my_dict = {}

my_dict = dict()

不允许重复,新的会把老的去掉。同集合一样,不可以使用下标索引,通过key来取值,可嵌套

  • 新增元素
    语法:字典[key] = value
    结果:字典被修改,新增了元素
  • 更新元素
    语法:字典[key] = value
    结果:字典被修改,元素被更新
    注意:字典key不可以重复,所以对已存在的key执行上述操作,就是更新value值
  • 删除元素
    语法:字典.pop(key)
    结果:获得指定的key的value,同时字典被修改,指定key的数据被删除
  • 清空字典
    语法:字典.clear()
    结果:字典被修改,元素被清空
  • 获取全部的key
    语法:字典.keys()
    结果:得到字典中全部的key
  • len()
2.数据容器通用操作
• max最大元素

max(数据容器)

• min最小元素

min(数据容器)

• 容器的通用转换功能

除了下标索引这个共性外,还可以通用类型转换

  • list(容器):将给定容器转换为列表
  • str(容器):将给定容器转换为字符串
  • tuple(容器):将给定容器转换为元组
  • set(容器):将给定容器转换为集合 # 抛弃value保留key
• 通用排序功能

sorted(容器,[reverse=True])

[reverse=True]表降序

3.字符串大小比较

基于ASCII码的码值大小

4.函数中多个返回值

如果一个函数要有多个返回值

按照返回值的顺序,写对应顺序的多个变量接受即可,变量之间用逗号隔开,支持不同类型的数据return

5.函数参数多种传递方式
1.位置参数

调用函数时根据函数定义的参数位置来传递参数
注意:传递的参数和定义的参数的顺序及个数必须一致

2.关键字参数

函数调用时通过 “键=值” 形式传递参数
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

3.缺省参数

也叫默认参数,在函数定义的时候设定的默认值,写在最后面
作用:当调用函数时没有传递参数,就会默认使用缺省参数对应的值

4.不定长参数

不定长参数也叫可变参数,用于不确定调用的是时候会传递多少个参数(不传参也可以)的场景
作用:当调用函数不确定参数个数时,可以使用不定长参数

不定长参数的类型:

  ①位置传递 位置不定长 *号

        def user_info(*args)

        user_info(1, 2, 3, '小明', '男孩')

        注意:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型

  ②关键字传递 关键字不定长 **号

        def user_info(**kwargs)

        user_info(name='小王', age=11, gender='男孩')

        注意:以字典的形式接受

6.匿名函数
1.函数作为参数传递

将函数传入作用在于:是一种计算逻辑的春娣,而非数据的传递

2.lambda匿名函数

函数的定义中

  • def关键字,可以带有名称的函数
  • lambda关键字,可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用,无名称的函数,只可临时使用一次

匿名函数定义语法

lambda 传入参数: 函数体(一行代码)

  • lambda是关键字,表示定义匿名函数
  • 传入参数表示匿名函数的形式参数,如:x, y表示接受2个形式参数
  • 函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
7.文件的操作
1.文件的读取

open打开函数

open(name, mode, encoding)

        name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

        mode:设置打开文件的模式(访问模式):只读、写入、追加等。

        encoding:编码格式

mode:

  • r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
  • w:打开文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被        删除。如果该文件不存在,创建新文件。
  • a:打开一个文件用于追加,如果该文件已经存在,新的内容会被写入到已有内容之后。如果        该文件不存在,创建新文件进行写入

嘿咻 DuDuDu

read()方法

文件对象.read(num)

        num表示要从文件中读取的数据长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

        如果调用了多个read,下个read会在上个read结尾接着开始读

readlines()方法:读取文件的全部行,封装到列表中

readline()方法:一次读取一行内容

for循环读取文件行:

        for line in open("python.txt", "r"):

                print(line)

        # 每一个line临时变量,就记录了文件的一行数据

close()关闭文件对象

文件.close()

with open 语法

with open("python.txt", "r") as f

        f.readlines()

# 通过在with open的语句块中对文件进行操作
# 可以在操作完成后自动关闭close文件,避免遗忘掉close方法

2.文件的写操作

# 1.打开文件

f = open('python.txt', 'w', encoding="UTF-8)

# 2. 文件写入

f.write('hello world')

# 3.内容刷新

f.flush()

# 4.close()方法 内置了flush的功能

f.close()

注意:

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之位缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • 这样做是避免频繁的操作硬盘,倒置效率下降(攒一堆,一次性写磁盘)
  • 原有文件内容会被全部清空
3.文件的追加

f = open('python.txt', 'a', encoding="UTF-8)

注意:

  • 追加写入文件使用open函数的”a"模式进行写入
  • 追加写入的方法有(和w模式一致)
    • write(),写入内容
    • flush(),刷新内容到硬盘
  • a模式,文件不存在,会创建新文件
  • a模式,文件存在,会在原有内容后面继续写入
  • 可以使用 “\n” 来写出换行符
8.异常的捕获
1.捕获常规异常

try:

    可能发生错误的代码

except:

    如果出现异常执行的代码

2.捕获指定异常

try:

        print(name)

except NameError as e:

        print('name变量名称未定义错误')

注意事项:

        ① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常

        ② 一般try下方只放一行尝试执行的代码

3.捕获多个异常

当捕获多个异常时,可以要把捕获的异常类型的名字,放到except后,并使用元组的方式进行书写

try:

        print(1/0)

except (NameError, ZeroDivsionError)

        print('ZerioDivision错误')

4.捕获所有异常

try:

except Exception as e:

        print("出现异常了")

5.异常else

else表示如果没有异常要执行的代码

6.异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件

try:

        f = open('test.txt', 'r')

except Exception as e:

        f = open('test.txt', 'w')

else:

        print("没有异常,真开心")

finally:

        f.close()

9.异常的传递

异常是具有传递性的

tips:当所有函数都没有捕获异常的时候,程序就会报错

10.模块
1.模块的导入方式

[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]

2.自定义模块
  • __main__变量
    if__main__ == "__main__"表示,只有当程序时直接执行的才会进入
    if内部,如果时被导入的,则无法进入
  • __all__变量 
    如果一个模块文件中有这个变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素
11.包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个__init__.py文件(有这个文件才是包,没有不是),该文件夹可用于包含多个模块文件。从逻辑上看,包的本质依然是模块

导入包

方法①

import 包名.模块名

包名.模块名.目标

方法②

from 包名 import *

模块名.目标

注意:必须在`__init__.py`文件中添加`__all__ = []`,控制允许导入的模块列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/21658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++/STL】list(常见接口、模拟实现、反向迭代器)

🌈个人主页:秦jh_-CSDN博客🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 目录 前言 list的常见接口 对迭代器的封装 节点 重载-> const迭代器 list与vector的对比 反向迭代…

2020长安杯

链接成功 检材一 1检材 1 的操作系统版本是 ()A. CentOS release 6.5 (Final)B. Ubuntu 16.04.3 LTSC. Debian GNU/ Linux 7.8 (wheezy)D. CentOS Linux release 7.6.1810 (Core)D 2检材 1 中,操作系统的内核版本是 ()(答案格式: “1.2.34” 数字和半角…

JVMの堆、栈内存存储

1、JVM栈的数据存储 通过前面的学习,我们知道,将源代码编译成字节码文件后,JVM会对其中的字节码指令解释执行,在解释执行的过程中,又利用到了栈区的操作数栈和局部变量表两部分。 而局部变量表又分为一个个的槽位&…

前端将DOM元素导出为图片

前端工作中经常会用到把一些元素导出,比如表格,正好项目有遇到导出为excel和导出为图片,就都封装实现了一下,以供其他需求的开发者使用: 1.导出为文档 这个说白了就是下载的功能,传过去检索参数&#xff…

超分辨重建——SRGAN网络训练自己数据集与推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…

计算机视觉与模式识别实验2-1 角点检测算法(Harris,SUSAN,Moravec)

文章目录 🧡🧡实验流程🧡🧡Harris算法SUSAN算法Moravec算法 🧡🧡全部代码🧡🧡 🧡🧡实验流程🧡🧡 Harris算法 Harris算法实现步骤&…

如何快速定位到影响mysql cpu飙升的原因——筑梦之路

通常我们只需要执行show processlist 进行查看,一般执行时间最长的SQL八九不离十就是罪魁祸首,但当show processlist的输出有近千条,那么很难第一眼就发现有问题的SQL,那么如何快速找到呢?其实也非常简单。我们知道mys…

JS面试题:什么是原型和原型链

一、原型 函数都有prototype属性,称之为原型,也称为原型对象原型 1.可以放一些属性和方法,共享给实例对象使用 2.原型可以做继承 二、原型链: 对象都有proto 属性,这个属性指向它的原型对象,原型对象也是对也有 proto 属性,指向原型对象的原型对象,这样一…

论文摘要一般要写些什么内容?

论文摘要通常需要包含以下几个关键内容: 研究背景与目的:简要介绍研究的背景信息,包括研究领域的重要性、当前的研究现状以及存在的问题。然后,清晰地阐述研究的目的、研究问题或研究假设,让读者明白研究的出发点和意图…

推荐一个图片识别的llama3微调版本 清华面壁项目

水一篇: MiniCPM-V是面向图文理解的端侧多模态大模型系列。该系列模型接受图像和文本输入,并提供高质量的文本输出。自2024年2月以来,我们共发布了4个版本模型,旨在实现领先的性能和高效的部署,目前该系列最值得关注的…

工业4.0利器:MES系统

工业4.0利器:MES系统 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,…

Java如何实现pdf转base64以及怎么反转?

问题需求 今天在做发送邮件功能的时候,发现邮件的附件部分,比如pdf文档,要求先把pdf转为base64,邮件才会发送。那接下来就先看看Java 如何把 pdf文档转为base64。 两种方式,一种是通过插件 jar 包的方式引入&#xf…

英语学习笔记31——Where‘s Sally?

Where’s Sally? Sally在哪? 词汇 Vocabulary garden /ˈɡɑːrdn/ n. 花园,院子(属于私人) 区别:park n. 公园(公共的) 例句:我的花园非常大。    My garden is very big. 搭…

【linux-imx6ull-设备树点灯】

目录 1. 设备树简介1.1 编译-引用1.2 设备树文件结构1.3 设备树节点介绍1.3.1 特殊节点chosen 1.4 节点内容追加 2. 设备树常用OF操作函数2.1 节点寻找类2.2 属性提取类2.3 其它常用类 4. 设备树下LED实验4.1 实验简介4.2 添加LED设备节点4.3 获取设备节点并提取属性4.3.1 获取…

深度学习-05-反向传播理论知识

深度学习-05-反向传播理论知识 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xf…

java面试题及答案2024,java2024最新面试题及答案(之一)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Ja…

03_03_初识SpringAOP和应用

一、SpringAOP的初识与原理 1、概述 AOP:面向切面编程OOP:面向对象编程面相切面编程:是基于OOP基础之上的新编程思想,OOP面向的主要是对象是类,而AOP面向的主要对象是切面,它在处理日志、安全管理、事务管…

结账和反结账

结账与反结账功能在财务软件和会计系统中扮演着重要的角色,以下是关于这两个功能的详细解释: 一、结账功能 结账功能是计算和结转各个会计科目本期发生额和期末余额的过程,同时标志着一定时期内财务活动的结束和财务数据的固化。结账功能的…

C语言 链表经典OJ题

链表经典OJ题 移除链表元素链表的中间节点反转链表合并两个有序链表分割链表 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head […

python小练习03

1.绘制奥运五环旗 #奥运五环的绘制 import turtle as t t.pensize(3) t.speed(0) def draw_circles():i0while i <4:args [[-60,0,"blue"],[0,0,"black"],[60,0,"red"],[-30,-30,"yellow"],[30,-30,"green"]]#定义一个…