全网最全Python项目体系练习500例(附源代码),练完可就业

作者:

文章目录

51.内存泄露是什么?如何避免?

内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。

del() 函数的对象间的循环引用是导致内存泄露的主凶。不使用一个对象时使用: del object 来删除一个对象的引用计数就可以有效防止内存泄露问题。

通过Python扩展模块gc 来查看不能回收的对象的详细信息。

可以通过 sys.getrefcount(obj) 来获取对象的引用计数,并根据返回值是否为0来判断是否内存泄露

52.python常见的列表推导式?

[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

53.简述read、readline、readlines的区别?

read 读取整个文件
readline 读取下一行
readlines 读取整个文件到一个迭代器以供我们遍历

54.什么是Hash(散列函数)?

散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表

55.python函数重载机制?

函数重载主要是为了解决两个问题。
1。可变参数类型。
2。可变参数个数。

另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。

好吧,那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。

那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。

好了,鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。

56.写一个函数找出一个整数数组中,第二大的数

57.手写一个判断时间的装饰器

在这里插入图片描述在这里插入图片描述
58.使用Python内置的filter()方法来过滤?

list(filter(lambda x: x % 2 == 0, range(10)))

59.编写函数的4个原则

1.函数设计要尽量短小

2.函数声明要做到合理、简单、易于使用

3.函数参数设计应该考虑向下兼容

4.一个函数只做一件事情,尽量保证函数语句粒度的一致性

60.函数调用参数的传递方式是值传递还是引用传递?

Python的参数传递有:位置参数、默认参数、可变参数、关键字参数。
函数的传值到底是值传递还是引用传递、要分情况:

不可变参数用值传递:像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变不可变对象。
可变参数是引用传递:比如像列表,字典这样的对象是通过引用传递、和C语言里面的用指针传递数组很相似,可变对象能在函数内部改变。

61.如何在function里面设置一个全局变量

globals() # 返回包含当前作用余全局变量的字典。 
global 变量 设置使用全局变量

62.对缺省参数的理解 ?

缺省参数指在调用函数的时候没有传入参数的情况下,调用默认的参数,在调用函数的同时赋值时,所传入的参数会替代默认参数。

*args是不定长参数,它可以表示输入参数是不确定的,可以是任意多个。
**kwargs是关键字参数,赋值的时候是以键值对的方式,参数可以是任意多对在定义函数的时候不确定会有多少参数会传入时,就可以使用两个参数

63.Mysql怎么限制IP访问?

64.带参数的装饰器?
带定长参数的装饰器

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
带不定长参数的装饰器

在这里插入图片描述在这里插入图片描述
65.为什么函数名字可以当做参数用?

Python中一切皆对象,函数名是函数在内存中的空间,也是一个对象

66.Python中pass语句的作用是什么?

在编写代码时只写框架思路,具体实现还未编写就可以用pass进行占位,是程序不报错,不会进行任何操作。

67.有这样一段代码,print c会输出什么,为什么?

a = 10 
b = 20 
c = [a] 
a = 15

答:10对于字符串,数字,传递是相应的值

68.交换两个变量的值?

a, b = b, a

69.map函数和reduce函数?

在这里插入图片描述在这里插入图片描述
70.回调函数,如何通信的?

回调函数是把函数的指针(地址)作为参数传递给另一个函数,将整个函数当作一个对象,赋值给调用的函数。

71.Python主要的内置数据类型都有哪些? print dir( ‘a ’) 的输出?

内建类型:布尔类型,数字,字符串,列表,元组,字典,集合
输出字符串’a’的内建方法

72.map(lambda x:xx,[y for y in range(3)])的输出?

[0, 1, 4]

73.hasattr() getattr() setattr() 函数使用详解?

hasattr(object,name)函数:
判断一个对象里面是否有name属性或者name方法,返回bool值,有name属性(方法)返回True,否则返回False。

在这里插入图片描述在这里插入图片描述
getattr(object, name[,default])函数:

获取对象object的属性或者方法,如果存在则打印出来,如果不存在,打印默认值,默认值可选。

注意:如果返回的是对象的方法,则打印结果是:方法的内存地址,如果需要运行这个方法,可以在后面添加括号().

在这里插入图片描述在这里插入图片描述
setattr(object, name, values)函数:

给对象的属性赋值,若属性不存在,先创建再赋值

在这里插入图片描述在这里插入图片描述
综合使用

在这里插入图片描述在这里插入图片描述
74.一句话解决阶乘函数?

reduce(lambda x,y : x*y,range(1,n+1))

75.什么是lambda函数? 有什么好处?

lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数

1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下
2.匿名函数,一般用来给filter,map这样的函数式编程服务
3.作为回调函数,传递给某些应用,比如消息处理

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

站内搜索