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.rhkb.cn/news/306717.html

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

相关文章

大型网站系统架构演化

大型网站质量属性优先级&#xff1a;高性能 高可用 可维护 应变 安全 一、单体架构 应用程序&#xff0c;数据库&#xff0c;文件等所有资源都在一台服务器上。 二、垂直架构 应用和数据分离&#xff0c;使用三台服务器&#xff1a;应用服务器、文件服务器、数据服务器 应用服…

基于Python的LSTM网络实现单特征预测回归任务(pytorch版)

一、数据集 自建数据集--【load.xlsx】。包含2列&#xff1a; date列&#xff08;时间列&#xff0c;记录2022年6月2日起始至2023年12月31日为止&#xff0c;日度数据&#xff09;price列&#xff08;价格列&#xff0c;记录日度数据对应的某品牌衣服的价格&#xff0c;浮点数…

linux使用docker实现redis主从复制和哨兵模式

目录 1. 拉取redis镜像 2.使用可视化redis工具 3. 设置从redis 4.设置哨兵模式 5. 使用docker-compose快速创建 1. 拉取redis镜像 docker pull redis 默认拉取最新的镜像。 然后pull结束后使用docker images检查镜像&#xff1a; 然后docker run创建container容器 首先…

matplotlib手动调用默认配色

matplotlib 画图有个默认配色方案&#xff0c;在画不同图时会保持一致。如&#xff1a; import numpy as np import matplotlib.pyplot as plt# 图 1 数据 x np.arange(12).astype(np.float32) 1 y1 np.log(x) y2 1 / x y3 np.sin(x) # 图 2 数据 a np.random.randn(200…

耐受强酸碱PFA试剂瓶高纯实验级进口聚四氟乙烯材质取样瓶

PFA取样瓶作为实验室中常备器皿耗材之一&#xff0c;主要用来盛放、储存和运输样品&#xff0c;根据使用条件不同&#xff0c;也可叫特氟龙试剂瓶、样品瓶、储样瓶、广口瓶、进样瓶等。广泛应用于半导体、新材料、多晶硅、硅材、微电子等行业。近年来随着新兴行业的快速发展&am…

01_QT编译报错:Cannot find file:问题解决

QT编译报错&#xff1a;Cannot find file:问题解决 报错原因&#xff1a;创建路径存在中文字符&#xff0c;将文件路径改为英文字符即可

PHP01——php快速入门 之 使用phpstudy快速搭建PHP环境

PHP01——php快速入门 之 使用phpstudy快速搭建PHP环境 0. 前言1. 下载小皮面板1.1 下载phpstudy&#xff08;小皮面板&#xff09;1.2 启动、简单访问1.2.1 启动Apache1.2.2 访问1.2.3 访问自定义文件或页面 2. 创建网站2.1 创建网站2.2 可能遇到的问题2.2.1 hosts权限问题&am…

PTA(题目集一 题目 代码 C++ 注解)

目录 题目一&#xff1a; 代码&#xff1a; 题目二&#xff1a; 代码&#xff1a; 题目三&#xff1a; 代码&#xff1a; 题目四&#xff1a; 代码&#xff1a; 题目五&#xff1a; 代码&#xff1a; 题目六&#xff1a; 代码&#xff1a; 题目七&#xff1a; 代…

十五届web模拟题整理

模拟赛一期 1.动态的Tab栏 请在 style.css 文件中补全代码。 当用户向下滚动的高度没有超过标题栏&#xff08;即 .heading 元素&#xff09;的高度时&#xff0c;保持 Tab 栏在其原有的位置。当滚动高度超过标题栏的高度时&#xff0c;固定显示 Tab 栏在网页顶部。 /* TODO…

微服务项目实战-黑马头条(一):环境搭建 + APP登录功能【前端静态资源+nginx反向代理+网关+过滤器】

文章目录 一、搭建nacos二、初始工程的搭建2.1 环境准备2.2主体结构 三、APP登录3.1 需求分析3.2 表结构分析3.3 接口定义3.4 功能实现 四、接口工具postman、swagger、knife4j4.1 postman4.2 swagger4.3 knife4j 五、网关5.1 网关搭建5.2 全局过滤器实现jwt校验 六、前端集成6…

解决PyCharm更新到2024.1版本后不能运行项目的问题

先来看看这个问题的表现吧。 1、运行和调试按钮是灰色的&#xff0c;并且显示编辑器中的文件不可运行&#xff0c;代码也是灰色的&#xff0c;还有我们的python文件的图标和文本文件的图标一样。 当然右键也是没有运行、调试选项。 2、无法创建新的项目和py文件&#xff0c;能…

【静态分析】静态分析笔记01 - Introduction

参考&#xff1a; BV1zE411s77Z [南京大学]-[软件分析]课程学习笔记(一)-introduction_南京大学软件分析笔记-CSDN博客 ------------------------------------------------------------------------------------------------------ 1. program language and static analysis…

动态规划(背包问题)

一:动态规划概述: 动态规划实际上是一种将原本的 大 方面的问题转化为许许多多的 小方面 的一种应用, 在一定程度上避免数据的重复, 并且能够将数据以自己希望的方式进行存储, 用来解决多阶段的数学问题, 从而提高算法的效率 在算法当中, 动态规划主要包括有: 递推, 线性DP 记忆…

ssm040安徽新华学院实验中心管理系统的设计与实现+jsp

实验中心管理系统 摘 要 本安徽新华学院实验中心管理系统的设计目标是实现安徽新华学院实验中心的信息化管理&#xff0c;提高管理效率&#xff0c;使得安徽新华学院实验中心管理工作规范化、科学化、高效化。 本文重点阐述了安徽新华学院实验中心管理系统的开发过程&#x…

ssm044基于java和mysql的多角色学生管理系统+jsp

学生管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

分享一下项目中遇到的排序失效问题

今天把原来的一个查询接口的业务代码进行了优化&#xff0c;减少了十几行冗余的代码。 原来的代码 ChongwuServiceImpl.java /*** author heyunlin* version 1.0*/ Slf4j Service public class ChongwuServiceImpl implements ChongwuService {Overridepublic JsonResult<…

【Algorithms 4】算法(第4版)学习笔记 24 - 5.5 数据压缩

文章目录 前言参考目录学习笔记1&#xff1a;介绍2&#xff1a;游程编码 run-length encoding2.1&#xff1a;介绍2.2&#xff1a;Java 实现3&#xff1a;霍夫曼压缩 Huffman compression3.1&#xff1a;变长前缀码 variable-length codes3.1.1&#xff1a;介绍3.1.2&#xff1…

基于ssm餐饮掌上设备点餐系统论文

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了餐饮掌上设备点餐系统的开发全过程。通过分析餐饮掌上设备点餐系统管理的不足&#xff0c;创建了一个计算机管理餐饮掌上设备点餐系统的方案。文章介绍了餐饮掌…

OpenHarmony编译构建系统

这篇来聊聊OpenHarmony的编译构建&#xff0c;经过前面的实践&#xff0c;再来看编译构建。 编译构建概述 在官网中提到了&#xff0c;OpenHarmony编译子系统是以GN和Ninja构建为基座&#xff0c;对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能…

代码随想录第38天| 509. 斐波那契数 70. 爬楼梯

理论基础 刷题大纲&#xff1a; 动态规划5步曲&#xff1a; 1、确定dp数组以及下标的含义 2、确定递推公式 3、dp数组如何初始化 4、确定遍历顺序 5、举例推导dp数组 509. 斐波那契数 509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.co…