python的基础知识

目录

1.django中F,Q查询

2._sre是干什么用的

3._weekref是什么

4.uuid是什么

5.orm 查询有哪些

6.ORM有哪些关键字

7.查询的双下划线

8._opcode.py是什么意思

9._thread.py是什么意思

10.python中内置模块有什么作用

11.pip3和pip3.7的区别

12.软连接

13.sqlalchemy简述

14.python中图形用户界面的工具包

15.什么是内存地址

16.鸭子函数

17..type实现原理

18.type()和isinstance()的区别

19.面向对象的三大要素

20.TOP三次握手四次挥手

21.隐式递归

22.IDIE在什么地方用,干什么的

23.python中的序列化和反序列化

24.生成器

25.DRAM 和SRAM比较

26.什么是递归函数

27.递归函数的限制条件

28.什么是内存地址

29.四大高阶函数

30._stract是干什么的


1.django中F,Q查询


        F查询(Field Queries):F查询用于对模型的字段进行过滤和比较。

        Q查询(Complex Queries):Q查询是一种更复杂的查询形式,它允许你使用逻辑操作符(如AND、OR、NOT)来组合多个查询条件。

2._sre是干什么用的


_sre 是一个 Python 内置模块,用于实现正则表达式的匹配和操作。_sre 模块提供了底层的正则表达式引擎,用于实现 re (正则表达式)模块的功能。

正则表达式在 Python 中被广泛用于文本处理、模式匹配和数据提取等任务。re 模块提供了一系列函数和方法,用于创建正则表达式对象、执行各种匹配操作以及进行字符串替换等。

3._weekref是什么


weakref 是 Python 标准库中的一个模块,提供了对弱引用的支持。弱引用是一种特殊的引用,它不会增加所引用对象的引用计数,因此不会阻止被引用对象的垃圾回收。

在 Python 中,对象的引用计数用于决定对象是否可以被垃圾回收。当一个对象没有被引用时,其引用计数为 0,就会被垃圾回收器回收。然而,有时候我们希望引用一个对象,但不希望阻止该对象被垃圾回收,这时就可以使用弱引用。

4.uuid是什么


UUID 是通用唯一标识符(Universally Unique Identifier)的缩写,它是一个标准的标识符格式,用于在计算机系统中唯一地标识实体。

UUID 是一个128位长的数值,通常以字符串的形式表示。它可以保证在全球范围内的各个计算机和网络中唯一性,即使在不同的时间和空间生成的 UUID 也不会重复。

5.orm 查询有哪些


检索数据:

filter():添加查询条件。
all():返回所有匹配结果。
first():返回第一个匹配结果。
one():返回唯一的匹配结果,如果有多个结果则抛出异常。
get():按主键值获取单个对象。
order_by():按指定字段排序结果。
组合条件:

and_():使用与操作符组合多个查询条件。
or_():使用或操作符组合多个查询条件。
not_():使用非操作符对查询条件进行取反。
连接关系:

join():连接关联的表。
outerjoin():外连接关联的表。
聚合和统计:

count():统计查询结果数量。
sum():计算某个字段的总和。
avg():计算某个字段的平均值。
max():找出某个字段的最大值。
min():找出某个字段的最小值。
嵌套查询:

subquery():创建子查询。


6.ORM有哪些关键字


select:用于选择要从数据库中检索的数据。可以与其他关键字一起使用,如where、order by等。

from:指定查询的数据表或实体。

where:用于指定查询条件。它可以与其他关键字如select、update、delete等一起使用。

insert into:用于向数据库中插入新的数据。

update:用于更新数据库中的数据。

delete:用于从数据库中删除数据。

join:用于连接多个表,并基于某些条件进行匹配。

order by:用于按指定的字段对结果进行排序。

group by:用于按指定的字段分组结果。

having:用于在使用group by后对分组结果进行过滤。

count:用于计算匹配条件的记录总数。

sum:用于计算某个字段的总和。

avg:用于计算某个字段的平均值。

max:找出某个字段的最大值。

min:找出某个字段的最小值。

7.查询的双下划线


双下划线用于字段之间的关联:

related_field__attribute:在关联模型中访问关联字段的属性。
双下划线用于过滤和查询操作:

field__exact=value:精确匹配字段的值。
field__iexact=value:忽略大小写的精确匹配。
field__contains=value:字段包含指定值。
field__icontains=value:忽略大小写,字段包含指定值。
field__in=[value1, value2]:字段的值在给定列表中。
field__gt=value:大于指定值。
field__gte=value:大于等于指定值。
field__lt=value:小于指定值。
field__lte=value:小于等于指定值。
双下划线用于关联的查询:

related_model__field=value:通过关联模型的字段查询。


8._opcode.py是什么意思


        在Python中,_opcode.py文件是Python解释器源码中的一个模块,用于定义和处理Python字节码(bytecode)指令的操作码(opcode)。字节码是由Python源代码编译而成的中间代码,它在Python虚拟机中执行。

_opcode.py包含了Python字节码操作码的定义,每个操作码都对应着一个整数值。这些操作码定义了Python虚拟机要执行的不同操作,例如加载变量、执行函数调用、比较值等。

通过_opcode.py,Python解释器可以将Python源代码转换为相应的字节码,并在运行时按照操作码进行逐条执行。

9._thread.py是什么意思


_thread.py是Python中实现线程编程的模块之一。它提供了对低级线程操作的支持,使开发人员能够在单个程序中运行多个线程并实现并行执行。

_thread.py模块是Python中较早的线程模块之一,它基于底层的线程原语来实现多线程。然而,从Python 3.2版本开始,官方推荐使用更高级的threading模块。

10.python中内置模块有什么作用


        Python中的内置模块是一组预先安装在Python解释器中的模块,它们提供了各种各样的功能和工具,可以直接在Python中使用。这些内置模块涵盖了广泛的应用领域,包括数学计算、文件操作、网络通信、日期和时间处理等。

11.pip3和pip3.7的区别


版本:pip3是Python 3的默认包管理器,它与Python的主要版本相关联。例如,在Python 3.6的安装中,pip3对应的是Python 3.6的版本。而pip3.7是一个具体的版本,指的是Python 3.7对应的pip工具。

使用方式:pip3通常是一个符号链接或快捷方式,它指向Python 3环境中的特定版本的pip工具(可能是pip3.7)。这意味着在使用pip3时,它实际上会调用对应的Python 3版本的pip工具来执行任务。因此,在大多数情况下,pip3可以认为是与Python 3环境关联的通用pip工具。

兼容性:pip3是与Python 3环境兼容的标准包管理器,它可以用于安装和管理Python 3下的第三方库。而pip3.7是Python 3.7特定的pip版本,它更具体地与Python 3.7环境相关联。因此,pip3.7可能具有一些Python 3.7特定的功能或优化,对于其他版本的Python可能不兼容。

12.软连接


软连接可以跨越文件系统,可以链接到任何位置,包括不同的磁盘分区或网络共享。
创建软连接不会复制目标文件或目录的内容,只是创建一个指向目标的引用。
软连接在目标文件或目录发生变化时会自动更新,因为实际上是访问原始目标。
删除软连接不会影响目标文件或目录,只会删除链接文件本身。


13.sqlalchemy简述


        SQLAlchemy是一个流行的Python SQL工具包,它提供了强大的SQL数据库连接和对象关系映射 (ORM) 功能。ORM允许您使用Python代码来操作数据库,而无需直接编写SQL语句。

下面是SQLAlchemy的一些主要特点:

        强大的数据库支持

        ORM功能

        灵活的查询语言

        事务支持

        高性能

14.python中图形用户界面的工具包


Tkinter:Tkinter是Python的内置GUI工具包,它基于Tk图形库。它简单易用,适合快速开发简单的界面。Tkinter提供了各种控件和布局管理器,可以创建窗口、标签、按钮、文本框等。

PyQt:PyQt是Python的一种绑定库,它封装了Qt图形库,提供了丰富的GUI组件和功能。PyQt具有很高的灵活性和可定制性,可用于构建复杂的GUI应用程序。但请注意,PyQt是一个第三方库,需要单独安装。

wxPython:wxPython是一个基于wxWidgets的Python绑定库,它提供了跨平台的GUI开发工具。它具有丰富的控件库和布局管理器,可用于创建漂亮且功能强大的GUI应用程序。

PySide:PySide是另一个Python与Qt的绑定库,类似于PyQt。它也提供了许多Qt的功能和控件供您使用。不同之处在于,PySide是Qt官方支持的绑定库,允许在GPL和商业环境中免费使用。
 

15.什么是内存地址


        内存地址是计算机中用来唯一标识和访问存储单元 (内存单元)的位置。每个存储单元都有一个唯一的地址,用于在计算机系统中进行数据的读取和写入操作。可以将内存地址理解为内存中某个特定数据的住所。

16.鸭子函数


        鸭子类型:是一种动态类型的风格。一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。

class F1:
    pass
 
# 假设,S1是我们的正统类,它继承于根正苗红的F1,是我们的正统类
class S1(F1):
    def show(self):
        print('S1.show')
 
# S2是路人甲,是个歪瓜裂枣,但是他自己也有一个叫show的方法。
class S2:
    def show(self):
        print('S2.show')
 
 
# 在Java或C#中定义函数参数时,必须指定参数的类型,也即是说,我们如果用
# Java写下面的Func,需要告知,obj是F1类还是其他什么东西。
# 如果限定了F1,那么S2是不可以被采纳的。
# 然而,在Python中,一切都是Obj,它不care你到底是什么类,直接塞进去就可以
 
def Func(obj):
    """Func函数需要接收一个F1类型或者F1子类的类型"""
    obj.show()
 
s1_obj = S1()
Func(s1_obj) # 在Func函数中传入S1类的对象 s1_obj,执行 S1 的show方法,结果:S1.show
 
s2_obj = S2()
Func(s2_obj) # 在Func函数中传入Ss类的对象 ss_obj,执行 Ss 的show方法,结果:S2.show

17..type实现原理


type 函数是Python中一个内置函数,用于返回对象的类型。下面是简要说明 type 函数的实现原理:

在Python中,每个对象都有一个特殊的属性 __class__,它存储了对象所属类的引用。type 函数基于这个属性来确定对象的类型。

18.type()和isinstance()的区别


type() 函数返回对象的具体类型,而 isinstance()函数则检查对象是否是指定类型或其子类的实例。
        type() 返回的是对象的类型,是一个类对象的实例,而 isinstance()返回的是一个布尔值,表示对象是否是指定类型或其子类的实例。

19.面向对象的三大要素


        封装(Encapsulation):封装是指将相关的数据和方法组合成一个单独的实体,将数据和对数据的操作封装在一起,隐藏了数据的具体实现细节,对外部提供了访问和操作数据的接口。通过封装可以实现数据的安全性和保护,同时也能够简化操作,提高代码的可维护性和重用性。

        继承(Inheritance):继承是指一个类可以派生出子类,子类可以继承父类的属性和方法,并可以在此基础上进行扩展或修改。通过继承机制,可以建立类之间的层次结构,从而实现代码的重用和扩展。子类可以继承父类的特性,包括属性、方法、甚至是其他类的关系。

        多态(Polymorphism):多态是指同一种操作或函数可以应用于不同类型的对象,产生不同的结果。多态允许针对不同类型的对象调用相同的方法名,但具体的实现会根据对象的类型而有所不同。通过多态,可以实现更灵活的程序设计,增加代码的可扩展性和可维护性。多态可以通过继承和接口实现。

20.TOP三次握手四次挥手


        TCP三次握手:
        客户端向服务端发送一个带有 SYN(同步)标志的连接请求报文段。
服务端收到请求后,向客户端发送一个带有 SYN/ACK(同步/确认)标志的确认报文段,表示服务端同意建立连接。
        客户端收到确认报文段后,再向服务端发送一个带有 ACK(确认)标志的报文段,表示客户端确认连接建立。
        服务端收到确认报文段后,连接建立完成,双方可以开始传输数据。
        TCP四次挥手:

客户端发起关闭连接请求,发送一个带有 FIN(结束)标志的报文段。
服务端收到请求后,向客户端发送一个带有 ACK 标志的确认报文段,表示服务端收到关闭请求。
服务端继续发送剩余数据,待数据发送完毕后,向客户端发送一个带有 FIN 标志的报文段。
客户端收到服务端的关闭请求后,发送一个带有 ACK 标志的确认报文段,双方确认关闭连接。
 

21.隐式递归


隐式递归是一种递归的实现方式,其中函数在其内部调用自身,而不需要明确使用递归函数调用语句。在隐式递归中,递归调用是通过程序的控制流进行实现的,而不是通过显式地调用递归函数。

隐式递归通常结合条件判断和循环语句来实现。在每次函数调用时,函数会检查某个条件,如果满足条件,则继续执行函数内部的代码,并最终再次调用自身。当条件不再满足时,函数会退出递归。

def factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n - 1)


22.IDIE在什么地方用,干什么的


IDLE 是 Python 自带的一个简单的集成开发环境(IDE),用于编写、运行和调试 Python 代码。它是 Python 安装包的一部分,并且可以在大多数 Python 安装中找到和使用。

IDLE 主要用于以下几个方面:Python 代码编辑和运行、交互式 Python Shell、调试器、文档和帮助资源。

23.python中的序列化和反序列化


  在Python中,序列化和反序列化是一种将数据结构或对象转换为字节流或字符串的过程,以便在不同的计算机或不同编程语言之间传输和存储数据。

对于简单的对象序列化和反序列化,一般常用的是 pickle 和 json 库。

24.生成器


def fibonacci_generator():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
 
 
fib = fibonacci_generator()
print(next(fib)) # 输出: 0
print(next(fib)) # 输出: 1
print(next(fib)) # 输出: 1
print(next(fib)) # 输出: 2
# ...


25.DRAM 和SRAM比较


        DRAM 和 SRAM 是两种不同的存储器类型,DRAM 适用于主存储器,容量较大但性能较低,而 SRAM 适用于高速缓存和特定应用,具有更快的速度和高性能。

26.什么是递归函数


递归函数是指在函数的定义中使用函数自身的调用。它通过将一个大问题分解为更小的同类子问题来解决复杂的问题。递归函数通常包括两个部分:基本情况(递归终止条件)和递归的实现。

在递归函数中,当满足基本情况时,递归停止,返回一个特定的结果。否则,递归函数会将问题分解为更小的子问题,通过调用自身来解决这些子问题。递归函数会重复执行,直到达到基本情况,从而解决原始的大问题。

27.递归函数的限制条件


基本情况(递归终止条件):递归函数必须定义一个基本情况,当满足该条件时,递归停止,返回一个明确的结果。如果没有正确定义基本情况,递归函数可能会陷入无限递归的循环中。

递归调用的规模减小:递归函数必须通过每次调用自身来解决一个规模更小的子问题,否则递归没有意义。这样,通过不断缩小规模,递归函数可以最终达到基本情况。

递归深度限制:递归函数的递归深度是指递归调用的层数。每一层的递归调用都对应着一个栈帧的创建,如果递归深度过大,可能会导致栈溢出的问题。因此,需要注意控制递归深度,避免出现栈溢出的情况。

合适的问题类型:递归函数适用于可以通过将问题分解为更小的子问题来解决的问题。不是所有的问题都适合使用递归函数,有些问题可能更适合使用迭代或其他方法来解决。

28.什么是内存地址


        内存地址是计算机中用来唯一标识和访问内存中每个存储单元(或内存单元)的数值。它可以看作是内存中某个特定存储单元的物理位置。

        在计算机系统中,内存被划分为一系列的存储单元,每个存储单元都有一个唯一的地址。这些地址通常以二进制形式表示。内存地址可以用于定位和访问存储单元中存储的数据。

        使用内存地址,计算机可以根据需要直接访问某个特定的存储单元,以读取或写入其中的数据。程序中的变量、对象和数据结构等都被存储在内存中,并通过内存地址进行访问和操作。

29.四大高阶函数


map(function, iterable):
map 函数接受一个函数 function 和一个可迭代对象 iterable 作为参数,将 function 应用到 iterable 的每个元素上,并返回一个结果列表。

numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared))  # 输出: [1, 4, 9, 16, 25]
filter(function, iterable):

filter 函数接受一个函数 function 和一个可迭代对象 iterable 作为参数,根据 function 的返回值(True 或 False)来过滤出满足条件的元素,并返回一个结果列表。

numbers = [1, 2, 3, 4, 5]
even = filter(lambda x: x % 2 == 0, numbers)
print(list(even))  # 输出: [2, 4]
reduce(function, iterable):
reduce 函数接受一个函数 function 和一个可迭代对象 iterable 作为参数,将 iterable 中的元素按照 function 定义的方式进行累积操作,并返回最终的结果。

from functools import reduce
 
numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers)
print(total)  # 输出: 15
sorted(iterable, key=None, reverse=False):
sorted 函数接受一个可迭代对象 iterable 作为参数,并返回一个排序后的新列表。可选参数 key 指定排序方式,reverse 参数决定是否逆序排序。

numbers = [5, 2, 4, 1, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 3, 4, 5]


30._stract是干什么的


这里有一个可能的误解。在标准的Python库和常用的Python模块中,没有名称为 _stract 的模块或功能。

也许你是想问的是 struct 模块。struct 模块是Python中的一个内置模块,它提供了一种将Python数据结构与C语言中的字节序列进行转换的工具。

通过使用 struct 模块,你可以执行以下操作:

打包(pack):将Python数据类型转换为字节序列。
解包(unpack):将字节序列转换为Python数据类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值