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 = 0b = 1while 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、空间占用和查找效率对比

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

在这里插入图片描述

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

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

相关文章

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

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

SV-7042V 40W网络有源音柱 智慧灯杆广播音柱

SV-7042V 40W网络有源音柱 一、描述 SV-7042V是深圳锐科达电子有限公司的一款壁挂式网络有源音柱&#xff0c;具有10/100M以太网接口&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;其采用防水设计&#xff0c;功率40W。 SV-7042V作为网络广播播放系统的终…

lucas定理+数位dp+组合数学,蓝桥杯真题[组合数问题]

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1.组合数问题 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 lucas > 分解为k进制数 > 一堆只包含若干小于k的数相乘的组合数相乘 mod k 为 0 > 某个组合数或某些组合数 下 < 上 > 求 …

redis怪谈

缓存穿透、击穿、雪崩 《缓存三兄弟》 穿透无中生有key&#xff0c;布隆过滤null隔离 缓存击穿过期key&#xff0c;锁与非期解难题 雪崩大量过期key&#xff0c;过期时间要随机 面试必考三 兄 弟&#xff0c;可用限流来保底 什么是缓存穿透 指查询一个一定不存在的数据&#x…

1. Django建站基础

1. Django建站基础 学习开发网站必须了解网站的组成部分, 网站类型, 运行原理和开发流程. 使用Django开发网站必须掌握Django的基本操作, 比如创建项目, 使用Django的操作指令以及开发过程中的调试方法.1.1 网站的定义及组成 网站(Website)是指在因特网上根据一定的规则, 使用…

C++ primer 第十八章

C语言的三大特性&#xff1a;异常处理、命名空间、多重继承。 1.异常处理 异常处理机制允许我们能够将问题的检测与解决过程分离开来。 1.1、抛出异常 在C语言中&#xff0c;我们通过抛出一条表达式来引发一个异常。 当执行一个throw时&#xff0c;程序的控制权从throw转移…

谷歌不收录怎么办?

谷歌不收录首先你要确认自己网站有没有出问题&#xff0c;比如你的网站是否已经公开&#xff0c;rboot是否允许搜索引擎进来&#xff0c;网站架构有没有问题&#xff0c;面包屑的结构是否有问题&#xff0c;确保你的网站没问题 接下来就是优化这个过程&#xff0c;有内容&#…

IPSec简介

起源 随着Internet的发展&#xff0c;越来越多的企业直接通过Internet进行互联&#xff0c;但由于IP协议未考虑安全性&#xff0c;而且Internet上有大量的不可靠用户和网络设备&#xff0c;所以用户业务数据要穿越这些未知网络&#xff0c;根本无法保证数据的安全性&#xff0…

path环境变量的作用

当我把一个运行文件的路径加入到了path环境变量&#xff0c;就可以在cmd命令行随时使用运行。 在path中有两个path上面的是用户的path&#xff0c;下面的是计算机的path

蓝桥杯 每日2题 day5

碎碎念&#xff1a;哦哈呦&#xff0c;到第二天也是哦哈哟&#xff0c;&#xff0c;学前缀和差分学了半天&#xff01;day6堂堂连载&#xff01; 0.单词分析 14.单词分析 - 蓝桥云课 (lanqiao.cn) 关于这题就差在input前加一个sorted&#xff0c;记录一下下。接下来就是用字…

【MATLAB源码-第10期】基于matlab的pi/4DQPSK,π/4DQPSK的误码率BER理论和实际对比仿真。

1、算法描述 蓝牙是一种被广泛应用的无线通信标准&#xff0c;工作在2.4GHz-2.4835GHz频段范围&#xff0c;所用的调制方式有:GFSK&#xff0c;PI/4-DQPSK。北美第二代数字蜂窝移动通信系统D-AMPS和日本的JDC蜂窝系统均采用PI /4-DQPSK&#xff0c;欧洲的GSM系统采用GMSK。PI /…

水质溶解氧控制器的优势特点

在全球水资源日益紧缺、水质问题愈发严重的现状下&#xff0c;如何科学有效地监测与管理水体溶解氧含量&#xff0c;成为了关乎生态环境保护、水生生物生存以及人类饮水安全的重要课题。溶解氧作为衡量水体自净能力、判断水体是否缺氧、评估水生生态系统健康状况的一项关键指标…

类和对象【一】类和对象简介

文章目录 C的类与C语言结构体的区别【引入类】类的定义类体中的成员函数的实现类中的访问限定符C中class和struct的区别 类的作用域类的实例化类中成员的存储位置类的大小 C的类与C语言结构体的区别【引入类】 类里面不仅可以定义变量还可以定义函数 例 类具有封装性【将在该…

关于nvm node.js的按照

说明&#xff1a;部分但不全面的记录 因为过程中没有截图&#xff0c;仅用于自己的学习与总结 过程中借鉴的优秀博客 可以参考 1,npm install 或者npm init vuelatest报错 2&#xff0c;了解后 发现是nvm使用的版本较低&#xff0c;于是涉及nvm卸载 重新下载最新版本的nvm 2…

云原生数据库海山(He3DB)PostgreSQL版核心设计理念

本期深入解析云原生数据库海山PostgreSQL版&#xff08;以下简称“He3DB”&#xff09;的设计理念&#xff0c;探讨在设计云原生数据库过程中遇到的工程挑战&#xff0c;并展示He3DB如何有效地解决这些问题。 He3DB是移动云受到 Amazon Aurora 论文启发而独立自主设计的云原生数…

Excel---一个工作簿中的多个sheet合并成一个PDF

0 Preface/Foreword 1 操作方法 1.1 方法一 文件》 导出 》创建PDF/XPS 》 选项 》发布内容 》“整个工作簿” 1.2 方法二 文件》 打印》 打印机选项中&#xff0c;选择一种PDF阅读器 》设置选项中&#xff0c;选择打印整个工作簿。

三步就能在OpenHarmony中实现车牌识别

介绍 本车牌识别项目是基于开源项目 EasyPR&#xff08;Easy to do Plate Recognition&#xff09;实现。EasyPR 是一个开源的中文车牌识别系统&#xff0c;基于 OpenCV 开源库开发。 本项目使用润和 HiSpark Taurus AI Camera(Hi3516DV300) 摄像头开发板套件(以下简称 Hi351…

对拍器/对数器 赛前抱佛脚

“对拍器/对数器的使用前提是该题你会暴力解法&#xff0c;如果不会&#xff0c;那么对拍器/对数器也没啥用。” 对拍器/对数器 应用背景 你有一个绝对对的暴力cpp代码&#xff0c;但时间会T&#xff0c;只适用于小范围的数据。所以你写了一个聪明的非暴力cpp代码&#xff0c…

【ctf.show】获得百分之百的快乐

1.打开靶场 2.根据页面代码&#xff0c;get请求值只能小于4位数&#xff0c;否则会回显hack&#xff01; 尝试后确实是这样的&#xff1a; 请求值小于4位数&#xff0c;页面无变化&#xff1a; 发送请求值ls查看内容 3.根据2返回的值&#xff0c;发送值为?1>nl 创建一个nl…

vivado 使用基本触发器模式

使用基本触发器模式 基本触发器模式用于描述触发条件 &#xff0c; 即由参与其中的调试探针比较器组成的全局布尔公式。当“触发器模式 (Trigger Mode) ”设置为 BASIC_ONLY 或 BASIC_OR_TRIG_IN 时 &#xff0c; 即启用基本触发器模式。使用“基本触发器设置 (Basic Trig…