数学建模社区-数学中国
标题:
全网最全Python项目体系练习500例(附源代码),练完可就业
[打印本页]
作者:
杨利霞
时间:
2021-6-24 16:26
标题:
全网最全Python项目体系练习500例(附源代码),练完可就业
全网最全Python项目体系练习500例(附源代码),练完可就业
g/ ^# I* S o8 i9 o' t
5 Z: J+ f9 P* P0 y# B% [' v, y: R* {2 o1 S
1.有一个jsonline格式的文件file.txt大小约为10K
: C2 ^6 v$ `2 o9 m5 t! O+ Q
2.补充缺失的代码
0 }0 _. Q- Z- x
3.输入日期, 判断这一天是这一年的第几天?
: B. j: O# _9 J1 O4 ~& S. }
4.打乱一个排好序的list对象alist?
& W/ E; t5 v; `: x& j, S* r
5.现有字典 d= {‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按value值进行排序?
& i8 ?3 k1 D7 M6 v: V- c+ B) M4 z+ A
6.字典推导式
: @ c- _9 h# ~$ B4 u
7.请反转字符串 “aStr”?
8 n3 l; q z( p. E- X g2 q" D
8.将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典 {k:1,k1:2,…}
) s, V* ]. ~: E/ R. x2 g# P. G
9.请按alist中元素的age由大到小排序
6 W1 |% Y/ q+ X- N, x
10.下面代码的输出结果将是什么?
* }" N! \0 T. Q0 \$ R7 D
11.写一个列表生成式,产生一个公差为11的等差数列
% r( _- U& ]) ~! j0 c
12.给定两个列表,怎么找出他们相同的元素和不同的元素?
5 j( f0 o* X5 E* ]/ j7 p
13.请写出一段python代码实现删除list里面的重复元素?
; s4 a! A4 D" G+ X0 J, g
14.给定两个list A,B ,请用找出A,B中相同与不同的元素 企业面试题
/ N6 [7 t5 `) S, `) ]( [$ x
15.python新式类和经典类的区别?
" ` R4 ~# i! q+ n' f2 j
16.python中内置的数据结构有几种?
" c! S/ j7 k" E0 s% i
17.python如何实现单例模式?请写出两种实现方式?
/ m' C- F0 }9 q }
18.反转一个整数,例如-123 --> -321
( M) o. T2 `* t& v: ^
19.设计实现遍历目录与子目录,抓取.pyc文件
1 H( q) D$ F3 f% |/ W$ s* j
20.一行代码实现1-100之和
0 z" l2 }" B4 x% @
21.Python-遍历列表时删除元素的正确做法
+ w. I, |$ q+ t3 Z- Y: H; \
22.字符串的操作题目
7 d8 O2 j& U* r, B4 ~* a+ @# a
23.可变类型和不可变类型
( A& K/ q+ x& t9 ^' W. p
24.is和==有什么区别?
) e- j9 M8 H* s9 k4 j# D u
25.求出列表所有奇数并构造新列表
+ J: g2 P5 J- n- x9 M0 _
26.用一行python代码写出1+2+3+10248
$ ], G0 @! l, a) ]1 x# D# D9 }
27.Python中变量的作用域?(变量查找顺序)
3 X* z( K/ n9 p
28.字符串 “123” 转换成 123 ,不使用内置api,例如 int()
* F t! q0 ` e, N
29.Given an array of integers
4 _% E+ Q" j( C3 X4 j; g: q/ G
30.python代码实现删除一个list里面的重复元素
, q" q9 m c: P
31.统计一个文本中单词频次最高的10个单词?
% W* \3 w9 q3 v) b( L& h
32.请写出一个函数满足以下条件
9 e7 W% [9 ?, J( {- j
33.使用单一的列表生成式来产生一个新的列表
d+ |) e! w3 }; {7 }( d2 |
34.用一行代码生成[1,4,9,16,25,36,49,64,81,100]
: {! k! V, ~9 e# A
35.输入某年某月某日,判断这一天是这一年的第几天?
8 B2 I4 q9 `9 o! `. k# l/ k
36.两个有序列表,l1,l2,对这两个列表进行合并不可使用extend
- D1 y# f. ]. x4 ~. z" } X; \, w$ Z; V
37.给定一个任意长度数组,实现一个函数
9 U0 e! [& B! w% [. E" D9 D
38.写一个函数找出一个整数数组中,第二大的数
( J% E$ ?! r. ?
39.阅读一下代码他们的输出结果是什么?
6 u& G: Z0 ^% C$ L* _7 S
40.统计一段字符串中字符出现的次数
4 i' o4 U& B) }* J9 J2 v. m
41.super函数的具体用法和场景
1 G' o3 Y' G; a* ?1 [
42.Python中类方法、类实例方法、静态方法有何区别?
! r" E- v W! r. ^) f, K
43.遍历一个object的所有属性,并print每一个属性名?
' l6 A9 n: C' u0 a
44.写一个类,并让它尽可能多的支持操作符?
' ]$ ^9 k. F9 W A
45.介绍Cython,Pypy Cpython Numba各有什么缺点
4 x: q4 X3 \( P8 t+ o* i" ?
46.请描述抽象类和接口类的区别和联系
/ d/ R8 i/ i( I
47.Python中如何动态获取和设置对象的属性?
, B# }" y( ?" h0 Z9 S- w& E
48.哪些操作会导致Python内存溢出,怎么处理?
8 I4 W9 ^' c7 D6 X
49.关于Python内存管理,下列说法错误的是 B
) t; z: k2 ~: |! R7 {. ~- b
50.Python的内存管理机制及调优手段?
/ K) j+ h" U; x# }
51.内存泄露是什么?如何避免?
7 J; c3 u+ l7 K
52.python常见的列表推导式?
# M/ d% Q Z6 ]4 n$ }; {7 P+ H
53.简述read、readline、readlines的区别?
* P% R# ?4 ?/ E% v0 v7 `
54.什么是Hash(散列函数)?
3 h# b7 W- `- a! m- g0 `
55.python函数重载机制?
1 c4 i6 E5 w5 L2 i
56.写一个函数找出一个整数数组中,第二大的数
, d- W: D/ q1 ~
57.手写一个判断时间的装饰器
8 @) r" ]+ P* j i: l! t* r( ?1 @
58.使用Python内置的filter()方法来过滤?
' Y! g( D1 q& M' i2 W5 T2 O+ ~
59.编写函数的4个原则
/ O# t! c! T; p/ x
60.函数调用参数的传递方式是值传递还是引用传递?
0 K- X: w& `. E, X1 B% |
61.如何在function里面设置一个全局变量
* G" @. C# x( j/ I0 D: o
62.对缺省参数的理解 ?
; N/ p1 X+ |+ J9 x8 n2 e
63.Mysql怎么限制IP访问?
5 l8 g- l' V& @: m6 G* X
64.带参数的装饰器?
8 O6 g5 j4 B f& X6 @$ H. \
65.为什么函数名字可以当做参数用?
+ {4 c& `% h8 R$ S" G
66.Python中pass语句的作用是什么?
K' w: J& Q6 E- N( S5 i
67.有这样一段代码,print c会输出什么,为什么?
) _3 V9 Q2 @' z6 B4 ~
68.交换两个变量的值?
0 L* Q$ L$ ~! |0 p: T8 h$ c
69.map函数和reduce函数?
w2 V" ]* t) U. ]8 c8 ~, B
70.回调函数,如何通信的?
7 m5 X, {6 k, j( k
71.Python主要的内置数据类型都有哪些? print dir( ‘a ’) 的输出?
/ I/ g+ A7 b3 [' ?2 C
72.map(lambda x:xx,[y for y in range(3)])的输出?
6 S/ E" v8 j0 [ s
73.hasattr() getattr() setattr() 函数使用详解?
6 j8 i, R# E. @
74.一句话解决阶乘函数?
; S5 m: ?8 U, A( ]# O6 c
75.什么是lambda函数? 有什么好处?
1 S3 U1 `6 M- a5 ~4 [. t
76.递归函数停止的条件?
! u2 f1 a* ~3 G/ Y1 u* L
77.下面这段代码的输出结果将是什么?请解释。
) V& y( W7 `8 X6 b! ]/ r. @! {# E
78.什么是lambda函数?它有什么好处?写一个匿名函数求两个数的和
- P# B! `0 t! t% M' S2 W
79.对设计模式的理解,简述你了解的设计模式?
; N: C! ?; X& A3 n: M% W ^
80.请手写一个单例
$ B/ c* s; X! K3 j5 F
81.单例模式的应用场景有那些?
- Z4 ~3 N+ V( M9 t! z: h- F* u! g1 r
82.用一行代码生成[1,4,9,16,25,36,49,64,81,100]
$ k, v9 _9 n8 G4 P6 A; Z: t
83.对装饰器的理解,并写出一个计时器记录方法执行性能的装饰器?
# Q3 E( i) z' u ~$ x5 [
84.解释以下什么是闭包?
2 }1 Z% s' v( I! g( F6 T" ^# G8 |
85.函数装饰器有什么作用?
" K5 U' @$ Q0 }
86.生成器,迭代器的区别?
4 d' U, G$ t7 P# u. q- T' |
87.X是什么类型?
( q* j3 O7 u" o9 e. ~. w
88.请用一行代码 实现将1-N 的整数列表以3为单位分组
( H- \& L+ ]" }5 W/ g
89.Python中yield的用法?
+ \6 g, v7 Y, i+ x" x5 ~8 c
90.Python中的可变对象和不可变对象?
3 u+ U4 P/ J$ j( `
91.Python的魔法方法
6 h' ?) I- M, W+ M1 n2 q, [
92.面向对象中怎么实现只读属性?
. @, X: r3 _. n+ J9 e2 ~
93.谈谈你对面向对象的理解?
2 P' Y& n( b( Q) H
94.请写出一段代码用正则匹配出ip?
1 O, P6 R7 p) t' P, L3 t7 v
95.a = “abbbccc”,用正则匹配为abccc,不管有多少b,就出现一次?
2 x) b" v% q+ t0 @5 X" e
96.Python字符串查找和替换?
4 I, P( U/ u9 B3 ?) h
97.用Python匹配HTML g tag的时候,<.> 和 <.*?> 有什么区别
# w- b7 X2 j8 T, U6 z: w& H
98.正则表达式贪婪与非贪婪模式的区别?
: s3 \6 @* H5 d/ G& ]3 a
99.写出开头匹配字母和下划线,末尾是数字的正则表达式?
$ d2 e( D' x* H! W5 F
100.正则表达式操作
( z& f, Z( @# i" C0 \0 N& d
101.请匹配出变量A 中的json字符串。
1 q& h# x7 e* F9 P) K
102.怎么过滤评论中的表情?
# o1 v- R$ Z1 `7 v5 _$ J/ J, P
103.简述Python里面search和match的区别
7 p/ O; ]+ ]; v) G7 h6 Z+ U2 ~
104.请写出匹配ip的Python正则表达式
! l3 f2 N/ l6 P% i# v& T/ ]. X1 k
105.Python里match与search的区别?
8 g5 T) o" @8 ^+ w
106.进程总结
+ d2 o, Z3 k. i) h8 z
107.谈谈你对多进程,多线程,以及协程的理解,项目是否用?
0 O& ]3 H! w; j" g" r
108.Python异常使用场景有那些?
2 `4 i# x% _4 G1 E8 {7 |2 K
109.多线程共同操作同一个数据互斥锁同步?
* s6 U+ a* d8 B2 z# M/ H
110.什么是多线程竞争?
7 p% q/ X4 `' p" c" o
111.请介绍一下Python的线程同步?
4 \+ M: s6 w' u9 u# C3 S S& |
112.解释以下什么是锁,有哪几种锁?
k6 z$ y) t& S* c
113.什么是死锁?
9 }( p4 `8 N8 p% w6 L
114.多线程交互访问数据,如果访问到了就不访问了?
0 C8 I) b# }. Q9 T2 P% W4 g
115.什么是线程安全,什么是互斥锁?
$ e0 Q2 ] r) _& ?( n
116.说说下面几个概念:同步,异步,阻塞,非阻塞?
; r) x) c* d9 L8 f
117.什么是僵尸进程和孤儿进程?怎么避免僵尸进程?
/ ?: O y& Q6 N. n/ d
118.python中进程与线程的使用场景?
' x3 f7 g) W& O4 ?% R
119.线程是并发还是并行,进程是并发还是并行?
3 q5 g. l+ D2 ~; l) D
120.并行(parallel)和并发(concurrency)?
- k# Q" B b9 w1 Y7 R' v. r
121.IO密集型和CPU密集型区别?
0 t! ?0 |2 Y) G6 f
122.python asyncio的原理?
( w3 @9 f* U& \+ w8 {! h9 N
123.怎么实现强行关闭客户端和服务器之间的连接?
" I+ M$ l: ~5 ~: C- v# b
124.简述TCP和UDP的区别以及优缺点?
6 m9 U/ ^. @ R9 a/ G1 r
125.简述浏览器通过WSGI请求动态资源的过程?
' ^0 @4 U& r. Y( q; i( t
126.描述用浏览器访问www.baidu.com的过程
& C1 n) {( i8 F) t( O
127.Post和Get请求的区别?
0 v) f6 L; h( w; S. ?
128.cookie 和session 的区别?
+ {( b1 |; P; ^+ v% ]/ r! n- J
129.列出你知道的HTTP协议的状态码,说出表示什么意思?
* o3 Y# `- O& l2 a* P) }
130.请简单说一下三次握手和四次挥手?
' T" h' t7 a% _, I8 ^
131.说一下什么是tcp的2MSL?
: r3 T" f" t) o F/ _
132.为什么客户端在TIME-WAIT状态必须等待2MSL的时间?
( N/ G4 U$ y V2 w# t9 p
133.说说HTTP和HTTPS区别?
9 a* c& `2 k2 x) d
134.谈一下HTTP协议以及协议头部中表示数据类型的字段?
& [' l4 Q, g: R# U, \; ]7 [
135.HTTP请求方法都有什么?
( Z& ]% v0 B$ q A; f
136.使用Socket套接字需要传入哪些参数 ?
0 A2 e2 F3 U7 r+ }6 z& A
137.HTTP常见请求头?
( ~& D; F( }, M1 _# r
138.七层模型?
4 _0 S" T4 {# i9 f3 S6 _0 U1 a' q
139.url的形式?
: Y- }8 m" k& c4 D: W' H9 Q
140.对Flask蓝图(Blueprint)的理解?
; ~# n' A. A& ]. l
141.Flask 和 Django 路由映射的区别?
! d# B% [! [- x- A$ w
142.什么是wsgi,uwsgi,uWSGI?
2 A# B! x2 @. P, \/ H+ o! A
143.Django、Flask、Tornado的对比?
4 I* \) ^3 I7 `! s
144.CORS 和 CSRF的区别?
( I! j! n/ p$ w$ m0 O, x+ X' c
145.Session,Cookie,JWT的理解
' U( x8 M9 g A- K! o/ F' _' @
146.简述Django请求生命周期
2 E9 @5 H( P& Q
147.用的restframework完成api发送时间时区
5 z8 V2 s0 p1 T
148.nginx,tomcat,apach到都是什么?
5 Q) s& s/ u: a$ E
149.请给出你熟悉关系数据库范式有哪些,有什么作用?
j' ]- W8 Q( l" y
150.简述QQ登陆过程
4 p& h1 i5 d2 |; e; }; i7 K7 s# X
151.post 和 get的区别?
) L3 y7 L% F" `9 \( c$ n
152.项目中日志的作用
, Y: r6 u7 D! x0 j2 Y- w
153.django中间件的使用?
+ ?% G' _8 M( Z/ T: v
154.谈一下你对uWSGI和nginx的理解?
. L) u* D; e6 ~, ^$ L* f
155.Python中三大框架各自的应用场景?
3 S8 K' `1 k8 |+ Q! Y. G( A( A
156.Django中哪里用到了线程?哪里用到了协程?哪里用到了进程?
, D: {% H- U; p2 \$ R! S) ^& Z
157.有用过Django REST framework吗?
% A: E. I8 D. W
158.对cookies与session的了解?他们能单独用吗?
; X( H+ ]' \; W: D ~ M3 Z2 E i
159.试列出至少三种目前流行的大型数据库
: m% h9 D2 A6 E1 |4 y$ [9 E
160.列举您使用过的Python网络爬虫所用到的网络数据包?
0 J& [9 T5 I5 J6 v) D
161.爬取数据后使用
* b, n' ?( t2 e* Y
哪个数据库存储数据的,为什么? 162.你用过的爬虫框架或者模块有哪些?优缺点?
: H1 J T7 J0 b$ i0 Z' b% l+ _
163.写爬虫是用多进程好?还是多线程好?
; b9 o- l1 N: B1 {9 k
164.常见的反爬虫和应对方法?
6 c3 e! x% ~! @. D
165.解析网页的解析器使用最多的是哪几个?
3 [& }5 [) W r* c D
166.需要登录的网页,如何解决同时限制ip,cookie,session
! G' ~/ T) @& J5 c2 M# n: ?4 D0 t0 t
167.验证码的解决?
9 T! o% e. T1 f* V
168.使用最多的数据库,对他们的理解?
) A& i7 w, B @) M; h
169.
" }3 g6 P$ B) Q: p v
编写过哪些爬虫中间件? 170.“极验”滑动验证码如何破解?
4 V' [. _! K) J% w. w+ L
171.爬虫多久爬一次,爬下来的数据是怎么存储?
) @5 y. J8 e5 A6 b5 L
172.cookie过期的处理问题?
7 D. e) H% J% D: S) h
173.动态加载又对及时性要求很高怎么处理?
! N) G- [0 ]- d$ o
174.HTTPS有什么优点和缺点?
- ] _3 y' w; N! R9 g1 w
175.HTTPS是如何实现安全传输数据的?
, ^4 |& q4 _9 T
176.TTL,MSL,RTT各是什么?
/ c! V2 m: S# M7 V7 B5 s
177.谈一谈你对Selenium和PhantomJS了解
* _- J }0 E l4 p5 r
178.平常怎么使用代理的 ?
5 H' T& e: a# s' O. P
179.存放在数据库(redis、mysql等)。
) Y; g$ B5 F9 A5 V, T, F
180.怎么监控爬虫的状态?
: t- t. h4 a: D
181.描述下scrapy框架运行的机制?
0 ?9 \( q4 J9 M( e# `
182.谈谈你对Scrapy的理解?
* C [( }8 ?& R4 i* m
183.怎么样让 scrapy 框架发送一个 post 请求(具体写出来)
; s: c2 @) x! [/ O8 c
184.怎么监控爬虫的状态 ?
- D+ \% o- u. T2 n; K
185.怎么判断网站是否更新?
+ [8 L% F8 `0 [$ X0 G
186.图片、视频爬取怎么绕过防盗连接
6 `" W$ b+ L* v' U
187.你爬出来的数据量大概有多大?大概多长时间爬一次?
' q1 W9 U4 b' b* m7 P, V, t
188.用什么数据库存爬下来的数据?部署是你做的吗?怎么部署?
/ N/ m9 a2 Z% ~. _7 b' N% u
189.增量爬取
/ d; B) \4 q/ ]2 \
190.爬取下来的数据如何去重,说一下scrapy的具体的算法依据。
) U' s O% R; r) [5 s7 k; d
191.Scrapy的优缺点?
) o5 ?6 t! s& v3 `
192.怎么设置爬取深度?
0 C a! [. r/ m- q7 ?
193.scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
# v: J2 g4 E7 g- ~" }' q, l+ e+ o3 j
194.分布式爬虫主要解决什么问题?
' a& F: c/ v& n9 v/ N/ P4 y4 w
195.什么是分布式存储?
+ J0 P% q1 v/ B9 H
196.你所知道的分布式爬虫方案有哪些?
, s3 P) ]+ r% c/ n0 H
197.scrapy-redis,有做过其他的分布式爬虫吗?
! U% n( I; S: b" R! a; b) V1 u
198.主键 超键 候选键 外键
( l3 F. b9 d) R5 H7 t
199.视图的作用,视图可以更改么?
0 Q* C& U T5 [8 R* L0 U
200.drop,delete与truncate的区别
9 S' S1 A p& q1 C" [8 g- r
201.索引的工作原理及其种类
; t8 Q4 L1 ~9 z$ b* _
202.连接的种类
/ [/ H2 L) Z8 ~8 ?! e
203.数据库优化的思路
' I! W) j8 H1 @+ U( D) _3 @
204.存储过程与触发器的区别
$ o2 J. q0 ^5 r8 T, M7 P
205.悲观锁和乐观锁是什么?
5 C: k! h4 M% g8 [- I8 x% T
206.你常用的mysql引擎有哪些?各引擎间有什么区别?
0 ]3 I' Z! r" u: Q p9 ~
207.Redis宕机怎么解决?
. ^, d/ i- F0 A4 t# ^+ }7 r
208.redis和mecached的区别,以及使用场景
3 L0 A' L& p( z1 n/ \7 h* Q
209.Redis集群方案该怎么做?都有哪些方案?
7 Q: n- |! o- e7 \
210.Redis回收进程是如何工作的
* S/ W/ H' g7 P- g
211.MongoDB中对多条记录做更新操作命令是什么?
0 i1 D1 M# h7 C: {! i
212.MongoDB如何才会拓展到多个shard里?
6 ~ Y. A7 G7 F) m, h; K& K' X4 p
213.编写测试计划的目的是
5 ^; q; P; n) p2 J9 d& I
214.对关键词触发模块进行测试
- [* m! K/ K/ b" j8 q5 Z
215.其他常用笔试题目网址汇总
- P9 S' i5 o3 Y" d' j
216.测试人员在软件开发过程中的任务是什么
$ R0 R! ^( \4 ?8 S2 t
217.一条软件Bug记录都包含了哪些内容?
, A+ E3 C2 Q2 K& b. k7 [7 P, c
218.简述黑盒测试和白盒测试的优缺点
( ], e P$ j0 n/ {& D
219.请列出你所知道的软件测试种类,至少5项
, b" b4 Y! M4 W/ K
220.Alpha测试与Beta测试的区别是什么?
. v5 J$ `0 C; `9 x% I6 i6 E
221.举例说明什么是Bug?一个bug report应包含什么关键字?
- r' m% F& f9 s% Y( C: `- p
222.数组中出现次数超过一半的数字-Python版
r% M+ G8 g5 l1 }
223.求100以内的质数
# U$ @( a1 @% b% L8 n* }
224.无重复字符的最长子串-Python实现
& e' M: ^# R2 x; l* A- e
225.通过2个5/6升得水壶从池塘得到3升水
# Y$ n$ H0 v* X8 ?- q1 f
226.什么是MD5加密,有什么特点?
% ]4 {& ]; N8 O+ r/ ~2 }; a
227.什么是对称加密和非对称加密
9 E3 V4 p: a( h0 [% h. J4 I
228.冒泡排序的思想?
! {8 M# |4 ^8 N4 k: s. [4 D
229.快速排序的思想?
+ R( X% K! {' v, Z
230.如何判断单向链表中是否有环?
N! I5 e$ ?9 x( x E
231.你知道哪些排序算法(一般是通过问题考算法)
' F' h. `. U! _
232.斐波那契数列
. H% A3 Q W( B# D
233.如何翻转一个单链表?
) }" t6 _8 }, Q
234.青蛙跳台阶问题
- T9 G3 Q/ ?4 Z, V! T
235.两数之和 Two Sum
7 b7 J4 V* j# b1 [/ `+ ]$ v" X
236.搜索旋转排序数组 Search in Rotated Sorted Array
7 h+ i/ _6 R+ r% X, v$ i
237.Python实现一个Stack的数据结构
( Y4 h( h0 t' A6 B" E; d9 W$ y1 M
238.写一个二分查找
+ ?" o* h2 `" z
239.set 用 in 时间复杂度是多少,为什么?
6 z* f# R" n8 a+ X( A
240.列表中有n个正整数范围在[0,1000],进行排序;
4 Y, t7 I+ j6 ^5 ^, ]$ J
241.面向对象编程中有组合和继承的方法实现新的类
& e; z/ v% y0 h$ j- O' _
242.找出1G的文件中高频词
+ G. _$ u- w8 H% P- K
243.一个大约有一万行的文本文件统计高频词
; N6 U7 e6 v6 y9 E1 q( F- k8 N
244.怎么在海量数据中找出重复次数最多的一个?
8 a: r' Y4 A0 X ?& A/ ]9 _
245.判断数据是否在大量数据中
: ^$ g6 W8 j1 F8 W! P7 a9 K
51.内存泄露是什么?如何避免?
8 Z. K, s9 J( z- C
/ {; T& G1 \% n/ W
0 @% e! m9 E$ Z& d L V# s
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。
' x! l3 e/ V( K( v8 u* b
- T0 Q+ j2 k' U& u+ ?* H8 s
4 `( K& C- J5 X! B; S1 q3 B; s
有 del() 函数的对象间的循环引用是导致内存泄露的主凶。不使用一个对象时使用: del object 来删除一个对象的引用计数就可以有效防止内存泄露问题。
6 ~7 [5 |" T8 h, b- a
1 Q* s5 |3 z9 C
( P( R' F# f& ]
通过Python扩展模块gc 来查看不能回收的对象的详细信息。
9 i! S) C2 \# x% n- ]! l% d
& _0 w; K' Z8 s
8 _% Y: r" \, g6 h: S" j: z
可以通过 sys.getrefcount(obj) 来获取对象的引用计数,并根据返回值是否为0来判断是否内存泄露
$ g% W+ L" P/ L& z
* N3 \2 B& x) M- Y
* T) G, B% ?+ V( k1 F( O4 W7 N( n( u: y
52.python常见的列表推导式?
9 R/ q7 d- h/ ^
8 V W) e4 i3 X% K: m! D8 r& u
$ ~6 ?. I$ |* P5 ?
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
) D9 T8 z5 }+ \, L# ?
1
4 H3 v) L( m0 M# g
53.简述read、readline、readlines的区别?
: ^# e8 y9 S+ _# S" P
J/ S3 ]- c0 B& w
/ {- P. n, g+ i$ K
read 读取整个文件
. z# U3 I& I: Q
readline 读取下一行
; B: T- r7 ^( p0 n
readlines 读取整个文件到一个迭代器以供我们遍历
) u/ R4 V# q0 W0 r# t0 i* b3 j$ B
8 ^# g: a# B o8 n8 D1 b; f7 W p
% y% U$ }! i3 f: \
54.什么是Hash(散列函数)?
, h8 j( ^8 ^) `: L( j" Z/ Y% I. ]
7 o$ e3 @( N. O8 X+ }; E* M
0 E {$ y' D! v6 ?' y! a
散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表
4 J2 d* f; O" g8 H# [2 E, H! n
( W5 ~1 @. U- N
# t' j0 R! f6 b& e
55.python函数重载机制?
0 t5 a. G( ~: f
: Z; W! G3 K$ M4 d0 D! o* o2 H
* y2 Y: f8 ^# S
函数重载主要是为了解决两个问题。
/ q, B9 D0 b/ f7 S
1。可变参数类型。
! T! h; C/ A3 |
2。可变参数个数。
, E2 g3 `: s; a9 D# A
- a5 \& E! [0 S$ B
0 p/ _9 b6 z) R& {
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。
- B8 I& I! V& o# {9 s6 [( m
7 D7 S; P* L6 ^5 l" z
6 v7 ]- C) E( Q1 F; M
好吧,那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。
$ P5 B0 ^4 ~) m/ ?7 _1 U, E
3 s) V( F8 r9 K. g2 W& g, q( G
: g* b/ |1 h3 H, ]2 b! o$ D
那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。
6 T/ ]! S) V: G2 v
. m9 r* [! f I. Y/ n
2 H% O. g6 [1 r) A$ p; Q. h
好了,鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。
2 A6 l, W) G' y' \' R' H" J! f# d
! k. y; n. k# U) S+ z3 i
# b+ N: i. H/ L& I! p
56.写一个函数找出一个整数数组中,第二大的数
. ~ r2 [( w# U* z, `: R
/ L$ [. R& H# X+ G) P0 B3 V
% i, [; y' o7 K; w- _6 p4 ^
57.手写一个判断时间的装饰器
. C) U7 T$ e2 `( r$ E% U4 f6 m
& [' b& W/ p% c ~: W& N1 h
1 `" ]) _/ L' z# G. ?6 ^8 @4 {
, p/ \) A. f3 s+ Q
$ W# G' b# e4 s# U: L; e8 X
58.使用Python内置的filter()方法来过滤?
9 \2 A5 @- v# t( F6 W9 H! P7 ^
. r0 E1 J9 K; q6 U* z* w
# x+ |, f3 u4 b
list(filter(lambda x: x % 2 == 0, range(10)))
9 r; O3 \, Z! \, Z8 S( m% ?" e$ l
1
* r/ _: X7 s% M# {8 K, L
59.编写函数的4个原则
# n$ e& l# X5 `9 G4 h8 B
2 ]# L) n/ u! R- z ^
" b( h- E {4 P4 ~6 ?$ M
1.函数设计要尽量短小
& V- j0 i' q# g' Y, t
8 L, ~& |8 ?6 w& O
& a) P: l) k$ ~5 e
2.函数声明要做到合理、简单、易于使用
; ^: T5 a1 _( |4 v" c
4 B `9 C# m# F9 C; I: B0 `5 V
: m- Q" i; v' @
3.函数参数设计应该考虑向下兼容
% f( {" V/ o/ r
' O; b& f7 l, Q3 F1 V
" g. ]* Z. \2 U. g! e! s+ |0 L
4.一个函数只做一件事情,尽量保证函数语句粒度的一致性
% _: s: f( |' h6 }. |7 w
$ \/ {9 o$ K( b0 _1 D4 [- p- N0 u
: D: D4 H4 x! D* t& g3 _6 ~
60.函数调用参数的传递方式是值传递还是引用传递?
$ a1 _ f$ V4 C) E8 c/ Z
: _* X7 @/ q! s* O6 Z, `
" z% a/ q2 o) W6 |- ^! l3 C
Python的参数传递有:位置参数、默认参数、可变参数、关键字参数。
/ G, C( w( ?6 h3 c/ N' B! I
函数的传值到底是值传递还是引用传递、要分情况:
$ y3 R8 I- Q! L& h2 L
; Z, Y+ F: r8 d8 @; z; P f& C2 ]& q
9 ?! g/ W7 B$ R6 C E
不可变参数用值传递:像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变不可变对象。
9 i9 n- N6 o' P
可变参数是引用传递:比如像列表,字典这样的对象是通过引用传递、和C语言里面的用指针传递数组很相似,可变对象能在函数内部改变。
( O" W5 l6 T( ~5 T
; z. _) S6 S( R! q
: t2 e# D0 B0 @6 D$ C
61.如何在function里面设置一个全局变量
" A8 ]. S3 }" y* n2 `
0 L9 C t1 t9 ~9 Q1 J
0 K* ]% H) R/ @# m
globals() # 返回包含当前作用余全局变量的字典。
0 c/ S8 u$ c! R% m; }
global 变量 设置使用全局变量
3 [8 c0 ?( u, l! R ~1 i
1
9 @4 c: G$ P! N; w6 _
2
4 ~/ j5 ?; u, j
62.对缺省参数的理解 ?
# |$ R+ u, r, r" c5 ?
$ |' |, `8 Z, g g7 |2 Y
" G; _( \8 z" F- d( N& d9 M
缺省参数指在调用函数的时候没有传入参数的情况下,调用默认的参数,在调用函数的同时赋值时,所传入的参数会替代默认参数。
; b6 ]7 S# x9 c% C/ q
' Q [; X/ t. {* s1 d$ f& G0 b
z% J9 ~2 O# \8 n6 B' |
*args是不定长参数,它可以表示输入参数是不确定的,可以是任意多个。
" a% z0 H5 e0 {$ N
**kwargs是关键字参数,赋值的时候是以键值对的方式,参数可以是任意多对在定义函数的时候不确定会有多少参数会传入时,就可以使用两个参数
( W* |; y$ S/ s! c K7 Y
! q8 x0 q+ x3 {/ G& F: @3 @
( O+ H( @$ F- Y' {8 `( M
63.Mysql怎么限制IP访问?
6 E7 z: V3 i5 h3 R9 h
- q/ \5 E( u* c/ A& }' O" E8 l
. F- Q$ h% z, S) ]# }
64.带参数的装饰器?
/ C# x+ q; a$ w Q" f8 k
带定长参数的装饰器
6 Z% O1 r8 M4 T! Z0 B2 s! q
2 V& z) m' Z% t
. @/ O( C6 l; q8 ]
; `* B; B; n0 Z6 B' {
6 q! S1 F/ J$ u
' L) ~; Y" _9 T' `9 W8 H, d
/ H' B9 S, y* ~* y
带不定长参数的装饰器
: N& a# A! o; h8 l) A% z
) |$ H$ y- b2 d, h2 f
0 R8 [$ s, u: z4 C
" s7 }* V& ~1 d
$ X# L! Y3 c" j! L' E, y
65.为什么函数名字可以当做参数用?
7 p: {0 _# A+ d6 k9 h9 T
7 r8 o7 P+ |+ ?, e# ^. b
, E* c; h/ F% V( P
Python中一切皆对象,函数名是函数在内存中的空间,也是一个对象
: W: b- s* V- M: W9 j# V. L2 m( O- q
! R" t8 M0 R/ R1 y
3 J: Y! [1 S+ N( @7 Z! M/ R; o
66.Python中pass语句的作用是什么?
! q1 W% x* `: U3 @) Z- q$ O
+ l( x2 I( T# d; E
( W8 O. H# C+ R9 d- [6 \. ~
在编写代码时只写框架思路,具体实现还未编写就可以用pass进行占位,是程序不报错,不会进行任何操作。
/ w: h# q `, |3 `( ]; e" `
0 p4 b% w/ j% {5 i K
# d6 j- S+ G0 k ^. y; n _
67.有这样一段代码,print c会输出什么,为什么?
1 Q+ a. W6 l" F, H$ s8 C
4 L5 B. B, Y4 @' R
; R* Q* l% z% k4 r# _8 d& V9 U
a = 10
R1 o* x) E5 R* T7 L
b = 20
4 B `' I4 y8 a3 J$ d
c = [a]
6 w0 @1 ]- h) U
a = 15
0 Z/ L4 s7 h! {& Y& I$ K
1
% y. _, i5 ~- E& @+ Z8 T0 G
2
2 U% ~% I0 v& k- Y% y
3
+ Y/ H/ Z- G2 B" W: v
4
/ O3 S7 i% T; m ~
答:10对于字符串,数字,传递是相应的值
/ `. ]/ X2 X) r. _: I2 |' I2 B8 ~
& e% g6 [( h# j* ^2 V/ k N1 z1 f
3 X0 ^! h, F' \! ?6 q, J% c" k
68.交换两个变量的值?
8 z* M$ i/ ^) w. q- w& L- \& i
) s- s1 ?' |: o
. b; r! U; n z8 i1 P0 [6 b2 e% h1 d" @
a, b = b, a
+ Q5 T5 t+ J! r
1
% p0 Y/ n8 ~/ \4 k
69.map函数和reduce函数?
; E# q' s9 ~) {6 K
/ _' C, c- x" ?! m; w: n
1 u7 F) T& J% b4 [
# O* G; c; m: S5 j
$ q& T: i" O1 y3 ^& `, T3 {( B- x
70.回调函数,如何通信的?
$ V! e2 d' m" b. ^
* B: G; D' p! v2 }5 N% R
. H) ] A% u! c8 \6 r+ T
回调函数是把函数的指针(地址)作为参数传递给另一个函数,将整个函数当作一个对象,赋值给调用的函数。
) T8 M" e* H$ e; R$ E" m
w3 c3 e# K) m, _' n5 a
& ?% I# a" l, T& C, Z) Q
71.Python主要的内置数据类型都有哪些? print dir( ‘a ’) 的输出?
8 J: ^4 S# v' y9 z1 z1 L
' J. v5 v; B/ A( h" x
H' G* T% L4 s" A; t' V' R
内建类型:布尔类型,数字,字符串,列表,元组,字典,集合
' Y/ x% ^, g0 t
输出字符串’a’的内建方法
B8 T. F. @! e* i/ v1 v5 l6 m
( v0 h' H9 n/ b1 Z2 W1 w r5 L
, v t. I% C! y+ B& u
72.map(lambda x:xx,[y for y in range(3)])的输出?
* L4 b. Y9 r& q q
+ l+ h$ D2 P, {5 r3 e/ W
6 @5 [) p" A8 p. I2 s
[0, 1, 4]
- |9 J7 H4 x" n: \5 |
1
; A: @& i8 T* b
73.hasattr() getattr() setattr() 函数使用详解?
3 l$ K: W4 q% Y: _% t. M' G
2 O8 m. l4 B* ^2 ]/ C% p* j
- M! u0 y2 D! _/ D8 t, ]' L
hasattr(object,name)函数:
7 p/ D! N2 g4 x2 X6 e( A9 \& B
判断一个对象里面是否有name属性或者name方法,返回bool值,有name属性(方法)返回True,否则返回False。
. r$ [! K% g3 D, b9 y
' m3 ?/ A2 c% _+ Y- k7 a' V
" Y5 f$ W; g2 Z' h' ~+ A! `# f/ ^
4 j. F7 g* ]: T9 n- p
' |8 P; E1 \6 V2 x! b! Z
getattr(object, name[,default])函数:
: Z# {& S& O6 Z, A- s
& `# k; s; P4 H9 H, \5 u; H
, E$ T2 j) m& a" B
获取对象object的属性或者方法,如果存在则打印出来,如果不存在,打印默认值,默认值可选。
3 o3 A, C a& T" {! Z
6 V! m$ }: {" Q$ T) Q( ?# U" v; w
) L2 ~' @. q. T. \% `
注意:如果返回的是对象的方法,则打印结果是:方法的内存地址,如果需要运行这个方法,可以在后面添加括号().
5 ]. G# j' J% L0 {7 h
% s: K( d8 B$ ?# ^% u, B% O F: t2 z4 i
* r- h$ E7 E. {" n! E+ `1 Z: d
3 o7 f5 d! B. L- s9 ?8 n0 \
6 h9 i" m' ]. P7 |7 t
setattr(object, name, values)函数:
- p# T- F* b$ U3 C
0 }2 Z ^7 X, b0 q7 G
( H- V ]. ?' L: U _/ u4 r2 h' E
给对象的属性赋值,若属性不存在,先创建再赋值
8 r5 r5 L# G. V8 T0 Y5 l
& Y6 ~2 w& y( _: _
% O. W, O# ]) q* b- L+ C3 T1 a
! _1 N4 F; p# F9 O
) z" w. K! n* T! h. Y
综合使用
" l4 U9 u/ }" A( A2 H
& \( Q2 H9 m, m
0 K8 a$ v: {3 n$ p2 ?
, I8 |. z4 I; Q' u! o
8 P" k$ l( p; }5 C2 j
74.一句话解决阶乘函数?
7 x' I' s; g9 G* \
! @- x& ]% l/ o6 J3 z; K( B8 {
3 D, e5 G$ v% G7 g
reduce(lambda x,y : x*y,range(1,n+1))
& d) }( r8 i" b' c2 y
1
$ ?0 a- c# J! g2 B- z6 J3 V
75.什么是lambda函数? 有什么好处?
/ q0 {4 Y" K( l) q
& Q: l5 |# ]7 N0 @: |8 |
: w- x5 B5 n! u! {( i0 P
lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数
, Q: B, u. V! P$ U
4 I: |1 z6 I5 `
# F. V2 }! `. B; ]2 K
1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下
) T# q" I2 [' e2 o
2.匿名函数,一般用来给filter,map这样的函数式编程服务
! X! ]! b | X$ b% S
3.作为回调函数,传递给某些应用,比如消息处理
& {$ K- Z) s- j
————————————————
5 n8 Z, g, ?' S
版权声明:本文为CSDN博主「yk 坤帝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
: z5 {% H+ c' T( `/ H" |1 ~+ E" y
原文链接:https://blog.csdn.net/qq_45803923/article/details/117754922
; G, h# o! E5 N
) x. ^& O+ s% | `
$ m/ |. o" G8 n% g. e X
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5