python知识点总结(二)

news2024/12/23 9:48:42

在这里插入图片描述


这里写目录标题

  • 1、什么是解释性语言,什么是编译性语言?
  • 2、说说中作用域是怎么划分的
  • 3、type和isinstance方法的区别
  • 4、浅拷贝和深拷贝
  • 5、python中变量在内存中存储方式
  • 6、python中的封装、继承、多态
  • 7、python中内存管理机制是怎么样的?
  • 8、简述类属性和对象属性的区别
  • 9、类方法、实例方法、静态方法区别
  • 10、类中property有什么用
  • 11、with方法使用原理
  • 12、while-else for-else语法的用法
  • 13、编写程序实现:该函数的输入是一个仅包含数字的list,输出一个新的list,
  • 14、read、readline、readlines
  • 15、传递方式是值传递还是引用传递
  • 16、正则表达式中贪婪模式和非贪婪模式的区别
  • 17、python异步场景有哪些
  • 18、把字符串s中的每个空格替换成”%20”,
  • 19、打乱一个排好序的对象
  • 20、将d按value进行排序
  • 21、将str1="k:1|k1:2|k2:3|k3:4"处理为字典
  • 22、写一个列表生成式,产生一个公差为11的等差数列 0 11 22
  • 23、给定两个列表,怎么找出他们相同的元素和不同的元素
  • 24、请写出一段python代码实现删除list里面的重复元素?

1、什么是解释性语言,什么是编译性语言?

编译型语言特点:编译成二进制文件;一次编译,多次执行;执行速度快(只需要翻译一次),跨平台型比较弱
解释型语言特点:翻译成C代码,再翻译成二进制,再执行;每次编译每次执行;执行速度慢(多次执行、多次编译),跨平台型比较强

2、说说中作用域是怎么划分的

内建作用域、全局作用域、闭包函数作用域、局部作用域
内建作用域:max、len,在任何地方都可以使用
全局作用域:全局变量,定义在.py文件中的变量
闭包函数作用域:定义在闭包函数中
局部作用域:定义在内部函数中

import os
from functools import reduce
from typing import Iterator, Iterable

c = 1  # 全局作用域


def fn():
    d = 2  # 函数作用域

    def fn1():
        e = 3  # 局部作用域


max(1, 2, 3)  # 内建作用域:在任何地方都可以用

3、type和isinstance方法的区别

目的不同:
type:用于获取对象的类型,其返回值是对象的类型
isinstance:用于测试对象是否是某种类型,返回True或者False
type不能判断子类对象是否属于父类,isinstance可以

a = 2
b = 2.4
print(isinstance(a, (int, float)))      #True
print(isinstance(b, (int, float)))      #True


class Father:
    pass


class Son(Father):
    pass


if __name__ == '__main__':
    son = Son()
    print(type(son))  # <class '__main__.Son'>
    print(isinstance(son, Son))  # True
    print(isinstance(son, Father))  # True
    print(isinstance(son, object))  # True

4、浅拷贝和深拷贝

总结:
1、浅拷贝只拷贝父对象,不会拷贝父对象中子对象
2、深拷贝不但拷贝父对象,父对象中的子对象也会拷贝
3、不可变对象,无论是深拷贝还是浅拷贝,都不会发生拷贝**

浅拷贝旨在减少内存的占用
深拷贝可以在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据
对于不可变对象类型,没有深浅拷贝的说法,无论是深拷贝还是浅拷贝结果一样的,如果对其重新赋值,
对于可变类型来说,浅拷贝只复制容器,不复制容器中元素;
深拷贝复制容器,元素如果是可变类型,也复制元素。

5、python中变量在内存中存储方式

1、什么是引用赋值?
定义了变量a,并且指向了内存中的一个地址,定义变量b时,将a变量的引用赋给b,两个变量指向了同一个内存地址。
2、引用赋值,如果使用的是可变类型:会被关联修改。

按值赋值:python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址付给新创建的变量。
符合字符串驻留条件的有:
1、数字在-5~256之间
2、符合标识符的字符串
3、字符串的长度为0或者为1时
4、字符串的由数字、字母、下划线组成时
5、字符串在编译前进行驻留,而不是编译后

1,当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。
2,不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。

6、python中的封装、继承、多态

https://blog.csdn.net/YZL40514131/article/details/121731536

7、python中内存管理机制是怎么样的?

https://blog.csdn.net/YZL40514131/article/details/125884570

8、简述类属性和对象属性的区别

类属性在__init__方法之外,
类属性可以让类和对象调用

实例属性定义在__init__中或者方法中
self.开头
只能通过实例对象调用
不能通过类去调用

调用类属性:
类调用:直接调用类属性
对象调用:先得到对象属性,如果有对象属性则获取类属性

类属性是共享的
同一个类创建的不同对象共享属性
对象属性
不同对象内存是独立的

9、类方法、实例方法、静态方法区别

https://blog.csdn.net/YZL40514131/article/details/119744665

10、类中property有什么用

https://blog.csdn.net/YZL40514131/article/details/120056165

11、with方法使用原理

用于上下文管理协议
__enter__:进入上下文
__exit__:退出上下文

class MyOpen:
    def __init__(self,filename,mode,encoding='utf-8'):
        self.f=open(filename,mode,encoding=encoding)

    def __enter__(self):
        return self.f

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.f.close()


with MyOpen('1.txt','r',encoding='utf-8') as f:
    res=f.readline()
    print("res",res)

12、while-else for-else语法的用法

换句话说,如果我们不是以正常方式退出循环,那么else分支将不被执行。
也就说在循环体内用break、return退出不会执行else语句。

13、编写程序实现:该函数的输入是一个仅包含数字的list,输出一个新的list,

其中每一个元素需要满足以下条件
1、该元素是偶数;
2、该元素在原list中是在偶数的位置

def num_list(num):
    return [i for i in num if i % 2 == 0 and num.index(i) % 2 == 0]


num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list(num))

14、read、readline、readlines

https://blog.csdn.net/YZL40514131/article/details/125609673

15、传递方式是值传递还是引用传递

不可变参数用值传递
可变参数是引用传递

16、正则表达式中贪婪模式和非贪婪模式的区别

贪婪模式:正则表达式去匹配时,会尽量多的匹配符合条件的内容
非贪婪模式:正则表达式去匹配时,会尽量少的匹配符合条件的内容,一旦匹配成功,不会继续往下匹配

17、python异步场景有哪些

1、多任务执行任务时不涉及共享资源,或者面对共享资源时只是读取数据,不会操作数据。
2、没有时序上的要求。
3、不能影响主线程的运行。
4、常用于IO操作等耗时操作,因为比较影响客户的体验和使用。
5、不需要原子操作,或可以通过其他方式控制原子性。

18、把字符串s中的每个空格替换成”%20”,

输入:s= “We are happy.", 输出: “We%20are%20happy.”

s = "We are happy."
s.replace("", "20%")

19、打乱一个排好序的对象

l = [2, 3, 4, 6]
import random

random.shuffle(l)
print(l)

20、将d按value进行排序

d = {'a': 24, 'g': 52, 'i': 12, 'k': 33}
d2 = sorted(d.items(), key=lambda d: d[1])
d3 = {key: value for key, value in d2}
print(d3)

21、将str1="k:1|k1:2|k2:3|k3:4"处理为字典

str1 = "k:1|k1:2|k2:3|k3:4"
d = {k.split(":")[0]: k.split(":")[1] for k in str1.split("|")}
print(d)

22、写一个列表生成式,产生一个公差为11的等差数列 0 11 22

l = [i for i in range(0, 100, 11)]
print(l)

l1 = [i * 11 for i in range(10)]
print(l1)

23、给定两个列表,怎么找出他们相同的元素和不同的元素

l1 = [1, 2, 3, 4]
l2 = [2, 3, 5, 6]

ll1 = set(l1)
ll2 = set(l2)

print(ll1 & ll2)  # 相同的元素
print(ll1 ^ ll2)  # 互不相同的元素
print(ll1 - ll2)  # l1不同l2的元素


{2, 3}
{1, 4, 5, 6}
{1, 4}

24、请写出一段python代码实现删除list里面的重复元素?

list1 = [1, 2, 2, 2, 3, 3, 4]


def func(list1):
    slow = 0
    fast = 0
    while fast < len(list1):
        if list1[fast] != list1[slow]:
            slow += 1
            list1[slow] = list1[fast]
        fast += 1
    return list1[:slow + 1]
print(func(list1))

在这里插入图片描述

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

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

相关文章

Halcon 深度图片==>点云图

文件路径 链接:https://pan.baidu.com/s/1UfFyZ6y-EFq9jy0T_DTJGA 提取码:ewdi * 1.读取深度图片 *****************

ubuntu16.04上pycharm卡住关不了

在使用pycharm的过程中&#xff0c;突然卡住&#xff0c;黑屏&#xff0c;手动界面关闭失败&#xff0c;可尝试以下方法解决。 输入以下命令&#xff0c;查看所有和pycharm有关的进程 ps -ef | grep pycharm得到以下结果 根据相应的PID&#xff0c;输入以下命令&#xff0c;强…

php双端交易所

php双端交易所&#xff0c;如需联系 完美修复版&#xff0c;带所有 PHP双端交易所完美版: PHP双端交易所完美版,带前端源码https://gitee.com/ycsw/ex.git

【REST2SQL】13 用户角色功能权限设计

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

ping和telnet的区别

ping是ICMP协议&#xff0c;只包含控制信息没有端口&#xff0c;用于测试两个网络主机之间网络是否畅通 telnet是TCP协议&#xff0c;用于查看目标主机某个端口是否开发。 总结&#xff1a;ping是物理计算机间的网络互通检查&#xff0c;telnet是应用服务间的访问连通检查&am…

AS-V1000视频监控平台如何加强系统安全,满足等保2.0规范要求

目 录 一、概述 &#xff08;一&#xff09;信息安全技术网络安全等级保护标准 &#xff08;二&#xff09;解读 1、等级保护工作的内容 2、等级保护的等级划分 3、不同等级的安全保护能力 第一级安全保护能力 第二级安全保护能力 第三级安全保护能力 第…

STM32信息安全 1.2 课程架构介绍:芯片生命周期管理与安全调试

STM32信息安全 1.2 课程架构介绍&#xff1a;STM32H5 芯片生命周期管理与安全调试 下面开始学习课程的第二节&#xff0c;简单介绍下STM32H5芯片的生命周期和安全调试&#xff0c;具体课程大家可以观看STM32官方录制的课程&#xff0c;链接&#xff1a;1.2. 课程架构介绍&…

Flex最后一行左对齐

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Flex最后一行左对齐</title><style&…

HDFS磁盘写满问题分析

HDFS磁盘写满问题分析 1. 问题说明1.1 namenode常规分配datanode策略1.2 DFS Used很大时是否能够继续写入数据 2 问题修复2.1 集群均衡操作2.2 配置系统预留参数 3. 疑问和思考3.1. 是否需要配置dfs.datanode.du.reserved&#xff1f; 4. 参考文档 探讨hdfs的datanode节点磁盘被…

【vue项目中点击下载】弹窗提示:离开此网站?系统可能不会保存您所做的更改,改为直接下载,不提示此弹窗内容,已解决

项目中用的是window.location.href实现下载 在Web浏览器中&#xff0c;当尝试通过window.location.href重定向到一个文件下载URL时&#xff0c;浏览器通常会显示一个确认对话框&#xff0c;询问用户是否要离开当前页面&#xff0c;因为下载的文件通常是在新窗口或新标签页中打…

【C语言】空心正方形图案

思路&#xff1a; 1&#xff0c;两行两列打印* &#xff1a;第一行和最后一行&#xff0c;第一列和最后一列。 2&#xff0c;其他地方打印空格。 代码如下&#xff1a; #include<stdio.h> int main() { int n 0; int i 0; int j 0; while (scanf("…

avue-crud顶部操作按钮插槽;avue-crud列数据插槽;avue-crud行操作按钮插槽

1.avue-crud顶部操作按钮插槽&#xff1b; <template slot"menuLeft" slot-scope"{ size }"><div class"left"><div class"btn"><el-button type"primary" size"small" click"onBatchR…

彻底学会系列:一、机器学习之梯度下降(1)

1 梯度下降概念 1.1 概念 梯度下降是一种优化算法&#xff0c;用于最小化一个函数的值&#xff0c;特别是用于训练机器学习模型中的参数&#xff0c;其基本思想是通过不断迭代调整参数的值&#xff0c;使得函数值沿着梯度的反方向逐渐减小&#xff0c;直至达到局部或全局最小…

【Linux】一文解决如何在终端查看 python解释器 的位置

【Linux】一文解决如何在终端查看 python解释器 的位置 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订阅…

【Liunx-后端开发软件安装】Liunx安装nginx

【Liunx-后端开发软件安装】Liunx安装nginx 使用安装包安装 一、简介 nginx&#xff0c;这个家伙可不是你厨房里的那位大厨&#xff0c;它可是互联网世界的“煎饼果子摊主”。想象一下&#xff0c;在熙熙攘攘的网络大街上&#xff0c;nginx挥舞着它的锅铲——哦不&#xff0c;是…

KVM安装-kvm彻底卸载-docker安装Webvirtmgr

KVM安装和使用 一、安装 检测硬件是否支持KVM需要硬件的支持,使用命令查看硬件是否支持KVM。如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的 egrep ‘(vmx|svm)’ /proc/cpuinfo关闭selinux将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=d…

python知识点总结(三)

python知识点总结三 1、有一个文件file.txt大小约为10G&#xff0c;但是内存只有4G&#xff0c;如果在只修改get_lines 函数而其他代码保持不变的情况下&#xff0c;应该如何实现? 需要考虑的问题都有那些?2、交换2个变量的值3、回调函数4、Python-遍历列表时删除元素的正确做…

编曲学习:如何编写钢琴织体 Cubase12逻辑预置 需要弄明白的问题

钢琴织体是指演奏形式、方式,同一个和弦进行可以用很多种不同的演奏方法。常用织体有分解和弦,柱式和弦,琶音织体,混合织体。 在编写钢琴织体前,先定好歌曲的调。 Cubase小技巧:把钢琴轨道向上拖动打和弦轨道,就可以显示和弦!如果你有一些参考工程,不知道用了哪些和…

jenkins Pipeline接入mysql

背景&#xff1a; jenkin pipeline进化过程如下&#xff1a; Jenkins Pipeline 脚本优化实践&#xff1a;从繁琐到简洁 >>>>> Jenkins Pipeline脚本优化&#xff1a;为Kubernetes应用部署增加状态检测>>>>>> 使用Jenkins和单个模板部署多个K…

Vue+SpringBoot打造康复中心管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…