python知识点汇总(十一)

在这里插入图片描述


python知识点总结

  • 1、当Python退出时,是否会清除所有分配的内存?
  • 2、Python的优势有哪些?
  • 3、什么是元组的解封装
  • 4、Python中如何动态获取和设置对象的属性?
  • 5、创建删除操作系统上的文件
  • 6、主动抛出异常
  • 7、help() 函数和 dir() 函数
  • 8、什么是猴子补丁
  • 9、实现一个斐波那契数列
  • 10、用过python的协程吗?如何实现?
  • 11、Python 中的反射
  • 12、将"hello world"转换为首字母大写"Hello World"(不使用 title 函数)
  • 13、super 函数的作用
  • 14、单下划线和双下划线的作用
  • 15、为什么不建议函数的默认参数传入可变对象
  • 16、获取当前时间
  • 17、列表与元组的区别
  • 18、列表与字典的区别

1、当Python退出时,是否会清除所有分配的内存?

答案是否。当Python退出时,对其他对象具有循环引用的Python模块,以及从全局名称空间引用的对象不会被解除分配或释放。无法解除分配C库保留的那些内存部分。退出时,由于拥有自己的高效清理机制,Python会尝试取消分配/销毁其他所有对象。

2、Python的优势有哪些?

Python易于学习
完全支持面向对象
高效的高级数据结构,可用少量代码构建出多种功能
拥有最成熟的程序包资源库之一
跨平台而且开源

3、什么是元组的解封装

首先展示解封装
将1,2,3封装到元组mytuple中,再将值解封装到变量x,y,z

mytuple=1,2,3
print(mytuple)

x,y,z=mytuple
print(x)
print(y)
print(z)

4、Python中如何动态获取和设置对象的属性?

Python中动态获取属性

class MyClass:
    def __init__(self):
        self.my_attr = 'Hello World'


my_object = MyClass()

# 动态获取属性
my_attr_value1 = getattr(my_object, 'my_attr')
print(my_attr_value1)  # 输出: Hello World!

# my_attr_value2=getattr(my_object,'my_name')
# print(my_attr_value2)  # AttributeError: 'MyClass' object has no attribute 'my_name'

my_attr_value3 = getattr(my_object, 'my_name', 'There is no attribute value')
# There is no attribute value
print(my_attr_value3)

Python中动态修改属性

class MyClass:
    def __init__(self):
        self.my_attr = 'Hello World'


my_object = MyClass()

# 动态获取属性
my_attr_value4 = getattr(my_object, 'my_attr')
print(my_attr_value4)  # Hello World

# 动态设置属性
setattr(my_object, 'my_attr1', 'Goodbye ')

my_attr_value5 = getattr(my_object, 'my_attr1')
print(my_attr_value5)     # Goodbye 

5、创建删除操作系统上的文件

  • 获取当前的工作路径:os.getcwd()
  • 获取文件列表:os.listdir()
  • 在当前目录下创建一个新的目录:os.mkdir
  • 递归创建多级目录:os.makedirs()
  • 删除空目录:os.rmdir()
  • os.path.abspath()获取绝对路径
  • os.path.basename()获取文件名
  • os.path.dirname()获取文件路径
  • os.path.split()分割路径
  • os.path.join()拼接路径
  • os.path.exists()判断路径是否存在
  • os.path.isdir()判断是否为目录
  • os.path.isfile()判断是否为文件

6、主动抛出异常


常见的异常

  • 列表或者元组超出索引
  • 字典无key
  • 没有定义变量
  • 语法错误
  • 导入错误
  • 断言错误
  • 对象没有这个属性
  • 缩进错误
  • 除数为0

7、help() 函数和 dir() 函数

  • help()函数:help()函数用于显示文档字符串,还可以查看与模块,关键字,属性等相关的使用信息。

  • dir()函数:dir()函数可以列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)

8、什么是猴子补丁

9、实现一个斐波那契数列

def func(n):
    a = 0
    b = 1
    while a <= n:
        print(a)
        a, b = b, (a + b)


func(8)

10、用过python的协程吗?如何实现?

1、协程是一种用户态的轻量级线程,协程的调度完全由用户控制;这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。
2、协程一般是使用gevent库
3、一个线程也可以拥有多个协程
使用gevent来实现多任务的时候,有一个很特殊的地方,它可以自行切换协程指定的任务,而且切换的前提是:当一个任务用到耗时操作(例如延时),它就会把这个时间拿出去做另外的任务。这样做最终实现了多任务,而且自动切换。

在这里插入图片描述

11、Python 中的反射



我使用于接口自动化中

12、将"hello world"转换为首字母大写"Hello World"(不使用 title 函数)

d="hello world"
print([i[0].upper()+i[1:] for i in d.split(" ")])

13、super 函数的作用

super 函数在Python中主要用于查找当前对象的父类(或超类),从而实现对父类方法的调用。它帮助开发者更方便地访问和重用父类中的方法,同时处理多重继承时的方法查找顺序问题。

14、单下划线和双下划线的作用

在这里插入图片描述

15、为什么不建议函数的默认参数传入可变对象

Python中,函数参数的默认值是在函数定义时计算的,而不是在每次函数调用时计算。当默认值是可变类型(如列表、字典等)时,这个默认值在函数定义时就会被创建并分配给参数。当函数被调用时,如果没有显式地传递该参数,函数将使用该默认值。

可变类型的默认值在函数定义时只会被创建一次,然后会在后续函数调用中重复使用。这意味着,如果在函数中修改了这个默认值,它将在后续的函数调用中保持修改后的值,而不是返回最初的默认值。

16、获取当前时间

17、列表与元组的区别

  • 列表[],元组()

  • 元组不可变,列表可变

    • 由于元组不可变,所以使用 tuple 可以使代码更安全
    • tuple 放弃了对元素的增删(内存结构设计上变的更精简),换取的是性能上的提升:创建 tuple 比 list 要快,存储空间比 list 占用更小。所以就出现了“能用 tuple 的地方就不用 list”的说法。
    • 多线程并发的时候,tuple 是不需要加锁的,不用担心安全问题,编写也简单多了
    • 直接在同一个元组上更新是不可行的,但是可以通过拷贝现有的元组片段构造一个新的元组的方式解决。
      通过分片的方法让元组拆分成两部分,然后再使用连接操作符(+)合并成一个新元组,最后将原来的变量名(temp)指向连接好的新元组。在这里就要注意了,逗号是必须的,小括号也是必须的!

      在这里插入图片描述
  • 列表具有增删改查等操作,元组只有查操作

  • 列表append、extend、pop、remove、del 元组只有index、count

  • 列表用于频繁操作,元素用于存储后读取

  • 列表不可哈希,元组可以哈希

  • 元组使用(a,),如果只有一个元素,必须使用,

18、列表与字典的区别

相同点

  • 可变性: 列表和字典都是可变的数据结构,可以在创建后修改其内容。

不同点

  • 1、存储元素的方式

    • 列表:是一个有序的集合,元素可以通过索引访问,索引是从0开始的整数。
    • 字典:是一个无序的集合,元素以键值对(key-value pair)的形式存储,通过键来访问值,字典在底层存储是通过哈希表。
  • 2、索引和键

    • 列表:元素可以通过索引直接访问,例如 my_list[0]。
    • 字典: 元素通过键来访问,例如 my_dict[‘key’]。
  • 3、有序性:

    • 列表:有序,元素的顺序与它们被添加的顺序相同。
    • 字典:无序,元素的顺序与它们被添加的顺序无关,字典不支持索引。
  • 4、元素类型:

    • 列表: 元素可以是任意数据类型,包括整数、字符串、列表等;值可以相同
    • 字典:键和值都可以是任意数据类型。键不能相同,值可以相同
  • 5、语法表示:

    • 列表: 使用方括号 [] 表示,例如 my_list = [1, 2, 3]。
    • 字典:使用花括号 {} 表示,例如 my_dict = {‘key’: ‘value’}。
  • 6、可迭代性:

    • 列表:可以通过循环遍历所有元素。
    • 字典:可以通过循环遍历所有键、所有值或所有键值对。
  • 7、常见操作:

    • 列表: 常见的操作包括添加元素、删除元素、切片等。
    • 字典:常见的操作包括添加键值对、删除键值对、获取所有键或所有值等。
  • 8、空间占用和查找效率对比

    • 字典查询速度比较快,但是存储数据占用内存比较大,消耗空间提升时间
    • 列表查询速度比较慢,但是存储数据占用内存比较小,消耗时间提升空间

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-----枚举、泛型进阶(通配符?)

文章目录 枚举1 背景及定义2 使用3 枚举优点缺点4 枚举和反射4.1 枚举是否可以通过反射&#xff0c;拿到实例对象呢&#xff1f; 5 总结 泛型进阶1 通配符 ?1.1 通配符解决什么问题1.2 通配符上界1.3 通配符下界 枚举 1 背景及定义 枚举是在JDK1.5以后引入的。主要用途是&am…

加速杂交水稻走向世界 政协委员建议在湖南设立一“协会”一“中心”

中新网北京3月8日电 (刘曼)针对中国杂交水稻海外“飘香”的现象&#xff0c;全国政协委员、湖南省政协副主席、民盟湖南省委会主委何寄华建议&#xff0c;在湖南建立杂交水稻国际合作交流协会、设立杂交水稻国际科技合作技术转移中心&#xff0c;支持杂交水稻走向世界。 全国政…

计算机基础知识-第7章-程序的本质(2)——算法与数据结构概论

一、算法数据结构程序 提出这一公式并以此作为其一本专著的书名的瑞士计算机科学家尼克劳斯沃思&#xff08;Niklaus Wirth&#xff09;由于发明了多种影响深远的程序设计语言&#xff0c;并提出结构化程序设计这一革命性概念而获得了1984年的图灵奖。他是至今惟一获此殊荣的瑞…

Python爬取链家数据

技术&#xff1a;requests、BeautifulSoup、SQLite 解析页面&#xff0c;存数据到SQLite数据库&#xff0c;到时候你用navicat导出成csv什么的就行 1、确定城市 以天津为例&#xff0c;网页是https://tj.lianjia.com/ershoufang/rs/ 把上面这些地区名字复制 2、爬取数据内容…

三天做完pandas数据分析50题第一天

三天做完pandas数据分析50题第一天 第1题 将python的list转换为Series第2题 将字典转换为Series第3题 将Series转换成python的list第4题 使用numpy创建series。第5题 如何为Series添加新的元素&#xff1f;第6题 使用字典创建DataFrame第7题 给DataFrame设置索引列第8题 生成一…

每日一题---OJ题: 合并两个有序链表

嗨!小伙伴们,好久不见啦! 今天我们来看看一道很有意思的一道题---合并两个有序链表 嗯,题目看上去好像不难,我们一起画图分析分析吧! 上图中,list1有3个结点,分别为1,2,3 ; list2中有3个结点,分别为1,3,4, 题目要求我们要将这两个链表合并到一起,并且是升序,最后将链表返回。 …

光威神策PRO PCIe 5.0 SSD发布,国产固态硬盘进入10G俱乐部

全球半导体供应链的紧张局势和闪存资源的短缺让许多行业都面临着不小的压力 &#xff0c; 连带的也让消费者难以获取物美价廉的闪存产品 。但是&#xff0c;总有一些企业能够逆流而上&#xff0c; 像是 光威科技这家国产存储品牌&#xff0c; 最近就给国内消费者 带来了一个惊喜…

mybatis05:复杂查询:(多对一,一对多)

mybatis05&#xff1a;复杂查询&#xff1a;&#xff08;多对一&#xff0c;一对多&#xff09; 文章目录 mybatis05&#xff1a;复杂查询&#xff1a;&#xff08;多对一&#xff0c;一对多&#xff09;前言&#xff1a;多对一 &#xff1a; 关联 &#xff1a; 使用associatio…

Echarts-实现地图并轮播地图信息

目录 ./map-geojson/jinhua.json./CenterMap.vue./center.vue 使用地图组件效果 ./map-geojson/jinhua.json {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":330…

力扣—2024 春招冲刺百题计划

矩阵 1. 螺旋矩阵 代码实现&#xff1a; /** param matrix int整型二维数组 * param matrixRowLen int matrix数组行数* param matrixColLen int* matrix数组列数* return int整型一维数组* return int* returnSize 返回数组行数 */ int* spiralOrder(int **matrix, int matri…

网工内推 | 网络工程师,13薪,周末双休,华三、华为认证优先

01 路邦远大 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、配合市场销售人员&#xff0c;做好产品的售后服务工作&#xff1b; 2、负责项目方案安装调试指导以及日常客户使用培训&#xff0c;对客户提出的问题提出解决方案&#xff1b; 3、为客户提供专业、规范的…

图片作为背景的闪白问题,6种基础方案, 不会不知道吧

前言 关于【SSD系列】&#xff1a; 前端一些有意思的内容&#xff0c;旨在3-10分钟里&#xff0c; 500-1500字&#xff0c;有所获&#xff0c;又不为所累。 某天&#xff0c;发现有背景图片的弹出框&#xff0c;会出现闪白现象&#xff0c;这&#xff0c;兄弟们&#xff0c;你…

导入芯片原厂SDK Mirror源码到gerrit

下载镜像代码 repo init --mirror --repo-url ssh://xx/repo.git -u ssh://xx/manifests.git -m manifest.xml repo sync 创建AOSP project 对All Project权限修改 创建repo 在刚才下载的codebase根目录执行如下命令&#xff1a; repo forall -c echo $REPO_PROJECT; ssh -p 29…

C++ AVL树底层实现原理

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;C知识分享⏪   &#x1f69a;代码仓库:C高阶&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C知识   &#x1f51d;&#x1f51d; 目录 前言 AVL 树 1.1 AVL树的概念 1.2 AVL树…

【Hadoop大数据技术】——Flume日志采集系统(学习笔记)

&#x1f4d6; 前言&#xff1a;在大数据系统的开发中&#xff0c;数据收集工作无疑是开发者首要解决的一个难题&#xff0c;但由于生产数据的源头丰富多样&#xff0c;其中包含网站日志数据、后台监控数据、用户浏览网页数据等&#xff0c;数据工程师要想将它们分门别类的采集…

永恒之蓝(ms17-010)复现

永恒之蓝 永恒之蓝&#xff08;Eternal Blue&#xff09;爆发于2017年4月14日晚&#xff0c;是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限&#xff0c;以此来控制被入侵的计算机。甚至于2017年5月12日&#xff0c; 不法分子通过改造“永恒之蓝”制作了wannacry勒索…

ARM架构麒麟操作系统安装配置Mariadb数据库

、安装配置JDK (1)检查机器是否已安装JDK 执行 java -version命令查看机器是否安装JDK,一般麒麟操作系统默认安装openjdk 1.8。 (2)安装指定版本JDK 如果麒麟操作系统默认安装的openjdk 1.8不符合需求的话,可以卸载机器安装的openjdk 1.8并按需安装所需的openjdk版本…

软件杯 深度学习人体语义分割在弹幕防遮挡上的实现 - python

文章目录 1 前言1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人体语义分割在弹幕防遮挡上的应用 该项目较为新颖&#xff0c;适合作为竞…

Python爬虫与API交互:如何爬取并解析JSON数据

目录 前言 一、什么是API和JSON数据 二、准备环境 三、发送API请求并获取数据 四、解析JSON数据 五、完整代码示例 六、总结 前言 随着互联网的发展&#xff0c;越来越多的网站提供了API接口&#xff0c;供开发者获取实时数据。在爬虫领域中&#xff0c;与API交互并解析…

快速实现一个Hibernate的例子

写第一个简单的Hibernate程序&#xff1a; 具体的开始第一个Hibernate程序之前: 找到jar包, hibernate 的核心包, mysql数据库的连接驱动包, junit测试包 ①创建Hibernate配置文件 ②创建持久化类 也是和数据库中数据表一一对应这个类 ③创建对象-关系映射文件 ④通过hibern…