(二) Python常见面试题 (2)

(二) Python常见面试题 (2),第1张

概述1、简述python的深浅拷贝copy()浅拷贝,只拷贝数据集合的第一层数据deepcopy()深拷贝,拷贝数据的所有层 2、垃圾回收机制(三种方式)  -引用计数 Referencecounting  -标记-清除  -分代回收 Generationalgarbagecollection 3、如何打乱一个排好序的l

1、简述python的深浅拷贝

copy() 浅拷贝,只拷贝数据集合的第一层数据

deepcopy() 深拷贝,拷贝数据的所有层

 

2、垃圾回收机制(三种方式)

    - 引用计数 Reference counting

    - 标记-清除

    - 分代回收 Generational garbage collection

 

3、如何打乱一个排好序的List对象aList

import random 

random.shuffle(aList)

 

4、从0-99中随机抽出10个数,要求不能重复,可以自己设计数据结构

[x*x for x in range(1,11)]

 

5、什么是面向对象编程语言

面向对象语言(Object-OrIEnted Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。

Object-orIEnted programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code: data in the form of fields (often kNown as attributes [ˈætrɪbjuːt] or propertIEs), and code, in the form of procedures [prəˈsiːdʒə(r)] (often kNown as methods).

 

6.  常见的设计模型(Design Patterns)

 

 

7、什么是MVC框架

 

8、介绍一下try except用法

用于抛出、捕获、处理异常

try:

  pass

except BaseException as e:

  print(e)

finally:

  pass

 

9、python递归(Recursive)的最大层数

998

 

10 以下两行代码输出结果分别是什么?

print([i%2 for i in range(10)]) //列表推导式,返回一个列表List

print((i%2 for i in range(10)))  //生成器表达式, 并不会创建数字列表,而是返回一个生成器对象

>>>

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

<generator object <genexpr> at 0x105b8cc30>

 

10、什么是闭包?

* 闭包函数(closure function)指的是定义在一个函数内部的函数,被外层函数包裹着。其特点是可以访问到外层函数的变量。

* 闭包是函数式编程的重要语法结构,提高了代码的可重复使用性

* 必须满足以下几点:

  - 必须有一个内嵌函数

  - 内嵌函数必须引用外部函数中的变量

  - 外部函数的返回值必须是内嵌函数

* 例子:

def outer():

    num =1

    def inner():

        print(num) #可以访问到外层的num

    return num  #可以将内层函数返回到外界使用,从而打破函数调用的层级限制 

func = outer() #实际调用的是inner()

num =1000

print(func) #输出结果:1,不会因为外界num的改变而改变

 

11、请实现一个装饰器,限制该函数调用的频率,如10秒一次

import time

def time_pay(func):

    def inner(*args, **kwargs):

        for line in range(10):

            print(line+1)

            time.sleep(1)

        res= func(*args, **kwargs)

        return res

    return inner

 

@time_pay

def func1():

    print("from func1...")

    

func1()

 

12、python的参数传递有哪些?

位置参数、默认参数、可变参数、关键字参数

 

13、  什么是pep?

PEP代表Python Enhancement Proposal。它是一组规则,指定如何格式化Python代码以获得最大可读性。

PEP stands for Python Enhancement Proposal. A PEP is a design document provIDing information to the Python community, or describing a new feature for Python or its processes or environment. The PEP should provIDe a concise technical specification of the feature and a rationale for the feature. It is a set of rules that specify how to format Python code for maximum readability.

 

14、什么是python模块?python有哪些常见的内置模块?

python模块是包含python代码的.py文件,此代码可以是函数类或变量

常用内置模块(built-in modules):sys、math、random、datetime、JsON

 

15、什么是PYTHONPATH?

它是导入模块时使用的环境变量,每当导入模块也会查找PATHONPATH已检查各个目录中是否存在导入的模块。解释器使用它来确定要加载的模块

PYTHONPATH is an environment variable which you can set to add additional directorIEs where python will look for modules and packages.

 

16、什么是python中的类型转换?

类型转换是将一种数据类型转换为另一种数据类型

int()  float()  str()  tuple()  List() dict()  set()

 

17、什么是_init_?

_init_是python中的方法或者结构,在创建类的对象/实例的时候,将自动调用此方法来分配内存

 

18、如何在python中删除文件

需要导入OS模块,然后使用OS.remove()

 

19、如何在python中实现多线程?

Python中有一个名为Global Interpreter Lock (GIL)的结构。GIL确保每次只能执行一个线程。一个线程获取GIL相关 *** 作,然后将其传递到下一个线程

 

20、什么是python包(Package)

包是包含多个模块的命名空间

命名空间的作用是确保

 

21、三元运算符

h = "变量1" if a>b else "变量2"
总结

以上是内存溢出为你收集整理的(二) Python常见面试题 (2)全部内容,希望文章能够帮你解决(二) Python常见面试题 (2)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存