IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python-知识点汇总 -> 正文阅读

[Python知识库]python-知识点汇总

文档目录

基础知识

解释型语言VS编译型语言

解释型语言:

编译型语言:
执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言。

跨平台:

  • Python 的垃圾回收机制的原理是什么?

  • 解释一下什么样的语言可以使用装饰器?
    答案:函数可以作为参数传递的语言,可以使用装饰器;

  • python 中的类(元类)是由什么创建的?

  • Python的GIL锁原理是什么?

GIL(Global Interpreter Lock) 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。

多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大。

  • 如何实现2个字典的合并?
last_dict.update(new_dict)
  • Python如何实现列表去重?
    实现方式:先转为集合,再转为列表,代码如下:
>>> list_a=["aaa","bbb","aaa",11,22,33,33]
>>> set_a=set(list_a)
>>> print(set_a)
{33, 11, 22, 'aaa', 'bbb'}
>>> list_b=list(set_a)
>>> print(list_b)
[33, 11, 22, 'aaa', 'bbb']
  • Python的内置数据类型有哪些?
    答案:整形(int)、字符型(string)、布尔型(Boolean)、列表(list)、元组(tuple)、字典(dictionary);

  • 简述Python面向对象中__new__和__init__区别?

  • 简述Python中with方法打开处理文件帮我们做了什么?
    答案:打开文件在进行读写操作时可能会出现一些异常状况,如果按照常规的f.open写法,需要try…except…finally,做异常判断,并且最终都要执行finally f.close()关闭文件,with方法内部实现了finally中f.close方法;

  • python中断言方法运行结果说明?
    答案:逻辑中断言成功则执行后面逻辑,否则程序报错;

  • 列出python中可变数据类型和不可变数据类型,并简述原理?

答案:
不可变数据类型:数值型、字符串型string和元组tuple;
不允许变量的值发生变化,如果改变了变量的值,则相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址),如下图用id()方法可以打印对象的id,判断是否为同一个对象;

可变数据类型:列表list和字典dict;

允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

  • python实现 str_a = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"?
    实现代码如下:
>>> str_a = "ajldjlajfdljfddd" 
>>> list_a=list(set(str_a))
>>> list_a.sort()
>>> str_b="".join(list_a)
>>> str_b

说明:list.sort() 函数没有返回值,所以不能直接将其赋值给另外一个变量;

  • Python的 里 用lambda函数实现两个数相乘?
>>> 
>>> fun_a=lambda a,b:a*b
>>> print(fun_a(4,5))
20
  • 字典 dict_a={“name”:“zs”,“age”:18,“city”:“深圳”,“tel”:“1362626627”} 根据键从小到大排序?
    方式A:取出键值,排序后赋值给新的字典;
>>> 
>>> dict_a={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
>>> dict_new={}
>>> list_a=list(dict.keys())
>>> list_a.sort(reverse=False)
>>> for x in list_b:
...     dict_new[x]=dict[x]
... 
>>> dict_new
{'age': 18, 'city': '深圳', 'name': 'zs', 'tel': '1362626627'}

方式B:使用内置函数排序生成新的列表

>>> dict_a={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
>>> dict_b={}
>>> list_b=sorted(dict_a.items(),key=lambda i:i[0],reverse=False)
>>> list_b
[('age', 18), ('city', '深圳'), ('name', 'zs'), ('tel', '1362626627')]
>>> 
>>> for y in list_b:
...     dict_b[y[0]]=y[0]
... 
>>> 
>>> dict_b
{'age': 18, 'city': '深圳', 'name': 'zs', 'tel': '1362626627'}
>>>
  • 字符串a = “not 404 found 张三 99 深圳”,每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"?

  • 列表推导式求列表所有奇数并构造新列表,list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]?
    实现代码:

>>> 
>>> list_a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list_b= [x for x in list_a if x%2==1] 
>>> list_b
[1, 3, 5, 7, 9]
>>>
  • 两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]?
    实现代码:
>>> list_a=[1,5,7,9]
>>> list_b=[2,2,6,8]
>>> list_a.extend(list_b)
>>> list_a
[1, 5, 7, 9, 2, 2, 6, 8]
>>> list_a.sort()
>>> list_a
[1, 2, 2, 5, 6, 7, 8, 9]
>>>
  • [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]?
    列表推导式实现:
>>> 
>>> list_1=[[1,2],[3,4],[5,6]]
>>> list_2=[j for i in list_1 for j in i]
>>> list_2 
[1, 2, 3, 4, 5, 6]
>>>
  • x=“abc”,y=“def”,z=[“d”,“e”,“f”],分别求出x.join(y)和x.join(z)返回的结果?
    代码实现:

  • 举例说明异常模块中try except else finally的相关意义
    答案:
    try…except…else没有捕获到异常,执行else语句;
    try…except…finally不管是否捕获到异常,都执行finally语句;

  • python中交换两个数值?
    代码实现:

>>> 
>>> num_1,num_2=11,22
>>> print(num_1,num_2)
11 22
>>> num_1,num_2=num_2,num_1
>>> print(num_1,num_2)
22 11
>>>
  • 举例说明zip()函数用法?
在这里插入代码片
  • [1,2,3]+[4,5,6]的结果是多少?
    结果解释:两个列表相加等同于 列表的 extend;
>>> 
>>> list_a=[1,2,3,4]
>>> list_b=[5,6,7]
>>> list_c=list_a+list_b
>>> list_c
[1, 2, 3, 4, 5, 6, 7]
>>>
  • list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]?
    实现逻辑:递归将原列表最小值赋值给新列表;
list_aa=[22,11,33,55,22,77,99,88]
list_ll=[]

def sortList(var:list):

    if len(var)>0:
        min_n=min(var)
        list_ll.append(min_n)
        var.remove(min_n)
        sortList(var)

    return list_ll

print(sortList(list_aa))
  • python实现 写一个单列模式的类?
    这块不熟!

  • 简述 python中any()和all()方法?
    解释:
    1)any() 和 all()参数只有一个,参数类型为可迭代对象;
    2)any()当参数中元素有一个为真,即返回 True;
    3)all()当参数中元素全部为真,才返回 True;

在这里插入代码片
  • python中什么元素为假?
    答案:0、空字符串、空列表、空元组、空字典、空集合、None、False;
    强调:此处 None 和 False 首字符必须大写;
>>> 
>>> any((0,"",None,False,[],(),{},set()))
False
>>>
  • 简述 python中copy和deepcopy区别?

  • 如何在Python中实现对象复制?

答案:一般使用 copy.copy()或 copy.deepcopy()

  • Python中的module和package是什么?
    答案:module是构造程序的方式,每个python程序文件都是一个模块,可以导入其他模块的对象或属性;
    pachage是文件夹,可以包含子package或者其他module;

  • Python中如何跨模块共享全局变量?
    实现方式:可以定义一个包含全局变量的新的模块,在每个别的模块内导入该模块

  • 解释如何在Python中删除文件?
    答案:导入os模块,使用命令os.remove(filename)或os.unlink(filename);

  • 计算机中“位”、“比特”、“字节”、“字”的关系?
    解释:
    位(bit):音译为“比特”,是计算机内部存储数据的最小单位;一般用 “b”表示;

字节(byte),是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,所以1byte = 8bit。字节一般用大写B表示,也可以表示成1B = 8bit;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码

字(word),计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。一个字通常由一个或多个(一般为字节的整数位)字节构成

字长,计算机每个字所包含的位数称为字长。字长是指它一次可处理的二进制数字的数目。所以字长是衡量计算机性能的一个重要因素。

  • Python支持多重继承吗?
    解释:Python可以支持多重继承。多重继承意味着,一个类可以从多个父类派生。

  • Python代码实现一个栈?

  • 1,2,3,4,5能组成多少个互不相同且不重复的三位数?
    答案:543=60种,排列组合问题;

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:26:58  更:2022-02-26 11:29:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:25:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码