
Python面试题
I天辉I
专注于Python相关的量化投资
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
import copya = [1, 2, 3, 4, ['a', 'b']]b = a # 引用,除非直接给a重新赋值,否则a变则b变,b变则a变c = copy.copy(a) # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,a变也不变...转载 2019-03-13 22:34:33 · 255 阅读 · 0 评论 -
python的7个经典的面试题
http://michaelyou.github.io/2015/05/19/%E7%BF%BB%E8%AF%91-7%E4%B8%AA%E7%BB%8F%E5%85%B8python%E9%9D%A2%E8%AF%95%E9%A2%98/下面的代码输出什么?list = ['a', 'b', 'c', 'd', 'e']print list[10:]上面的代码输出[]转载 2017-04-06 13:10:35 · 3777 阅读 · 0 评论 -
Python 列表解析
列表解析在一个序列的值上应用一个任意表达式,将其结果收集到一个新的列表中并返回。它的基本形式是一个方括号里面包含一个for语句对一个iterable对象迭代[python] view plain copy >>> res=[ord(x) for x in 'spam'] >>> res [115, 112, 97, 109] >>> [x**2 for转载 2017-04-06 12:59:09 · 511 阅读 · 0 评论 -
Python yield与实现
yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态,等待下一次的调用。由于生成器也是转载 2017-04-06 12:27:27 · 544 阅读 · 0 评论 -
Python函数参数类型*、**的区别
刚开始学习python,python相对于java确实要简洁易用得多。内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++的特性,总体来说理解起来比较轻松。只是函数部分参数的"*"与"**",闭包等问题,着实令人迷糊了一把,弄清概念后写下此文记录下来,也希望本文能够帮助其他初学者。所以本文是一篇学习笔记,着重于使用的细节和理解上,转载 2017-04-13 10:48:39 · 1050 阅读 · 0 评论 -
Python面试题汇总
拿网络上关于Python的面试题汇总了,给出了自认为合理的答案,有些题目不错,可以从中学到点什么,答案如不妥,请指正......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++【题目:001】| 说说你对zen of python的理解,你有什么办法看到它?Python之禅,Python秉转载 2017-04-12 21:50:34 · 1172 阅读 · 0 评论 -
11道Python基本面试题|深入解答
11道Python基本面试题|深入解答Python爱好者13 天前阅读本文大概需要5分钟前两天分享给大家的11道Python面试题,好多小伙伴都很积极的去思考分析,给我留言的同学非常多,非常欣慰有这么多好学的小伙伴,大家一起学习,一起加油,把Python学好。我也每天鞭策自己多学一些Python的知识,多提供一些正能量给大家,每天都进步一点点,今天我就把11道面试题细细转载 2017-04-12 18:53:22 · 7903 阅读 · 0 评论 -
Python 代码放在函数中运行比放在全局中运行快
作者:RednaxelaFX链接:https://www.zhihu.com/question/44011219/answer/96809146来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。因为CPython的解释器实现细节。CPython的解释器,对局部变量是用数组存储,用下标来访问;而对全局变量是用dict来存储,用符号(symbol转载 2017-04-11 19:48:25 · 990 阅读 · 0 评论 -
Python中的闭包总结
前几天又有人在我的这篇文章 python项目练习一:即时标记 下留言,关于其中一个闭包和re.sub的使用不太清楚。我在自己的博客上搜索了下,发现没有写过闭包相关的东西,所以决定总结一下,完善博客上Python的内容。1. 闭包的概念首先还得从基本概念说起,什么是闭包呢?来看下维基上的解释:复制代码 代码如下:在计算机科学中,闭包(Closure)是词法闭包(Lexic转载 2017-04-11 19:20:00 · 429 阅读 · 0 评论 -
python面试题大全(二)
转载请注明出处http://www.cnblogs.com/goodhacker/p/3387027.html1.python中类方法、类实例方法、静态方法有何区别?区别: 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数使用示例:python代码: 1转载 2017-04-02 15:39:35 · 602 阅读 · 0 评论 -
python循环引用的解决办法
在Python中常常会遇到循环import即circular import的问题。现实中经常出现这种滑稽的情况,安装无线网卡的时候,需要上网下载网卡驱动..安装压缩软件的时候,从网上下载的压缩软件安装程序居然是被压缩了的..循环依赖就类似于这种情况。举个栗子,在models.py中,[python] view转载 2017-04-25 11:19:30 · 2387 阅读 · 0 评论 -
python import自定义模块方法
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况:(1)主程序与模块程序在同一目录下:如下面程序结构:`-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 impo转载 2017-05-08 18:53:27 · 818 阅读 · 0 评论 -
LintCode Python 简单级题目 111.爬楼梯 (斐波纳契数列 青蛙跳)
题目描述:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?您在真实的面试中是否遇到过这个题? yes比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法返回 3标签动态规划题目分析:**设f(n)为n阶台阶的情况下,所有不同的跳法方法的总和!**1.如果起始跳一阶的话,剩余的n-1阶就有 f...转载 2019-03-13 22:23:47 · 411 阅读 · 0 评论 -
python-汉诺塔递归实现
def move(from,to): #将盘子从from移动到to,动画效果需要脑补 print(from,'->',to)def hanoi(n,src,tmp,dst):#将n个盘子从src搬到dst if n == 1: #只有一个盘子的情况 move(src,dst) else: #有一个以上盘子的情况 hanoi(n-1,...转载 2019-03-08 19:06:04 · 233 阅读 · 0 评论 -
python-输入年月日,判断这一天是这一年的第几天
输入年月日,判断这一天是这一年的第几天?(10分)题目内容:给定年月日,如2019/1/8,打印输出这一天是该年的第几天。输入格式:共一行,为一个字符串,年月日之间以'/'隔开,如2019/1/8。输出格式:共一行,为一个正整数。输入样例:2019/1/8输出样例:8时间限制:500ms内存限制:32000kb程序:fro...转载 2019-03-08 18:53:36 · 5102 阅读 · 2 评论 -
Python—合并两个有序列表
把两个有序的列表合为一个有序的列表,它的时间复杂度为O(n)def hb(list1,list2): result = [] while list1 and list2: if list1[0] < list2[0]: result.append(list1[0]) del list1[0] ...转载 2019-03-08 18:43:36 · 2006 阅读 · 0 评论 -
python--关于defaultdict()函数
最初使用字典的时候,只是简单实用dict(),但是如果键不存在,就会报错显示keyerror,此时可以考虑使用defaultdict()函数。如何使用KeyErrorfrom collections import defaultdicta=defaultdict(int)#或者是import collectionsa=collections.defaultdict(int)d...转载 2018-10-10 19:40:25 · 938 阅读 · 0 评论 -
Python中打印列表的序号和内容
==>the start最近作业里要用到遍历打印出列表中的序号和内容,我刚开始用了个很笨的方法来写,后来老师说可以使用enumerate()函数,所以我就特意研究了下。先看我之前用的笨方法:或者但是用enumerate()函数就很简单:看看enumerate()的帮助文档:看完突然发现,原来还支持‘start’参数,于是赶紧将之前丑陋的代码改一下:...转载 2018-10-10 19:20:44 · 8157 阅读 · 0 评论 -
Python(可变/不可变类型,list,tuple,dict,set)
补充:(可用操作技巧)>>> x=900>>> y=900>>> x==yTrue>>> type(x) is type(y)True>>> x is yFalse>>> id(x)3107344641872>&am转载 2018-08-06 22:29:52 · 922 阅读 · 0 评论 -
【Python】TypeError: 'module' object is not callable 原因分析
程序代码 class Person: #constructor def __init__(self,name,sex): self.Name = name self.Sex = sex def ToString(self): return 'Name:'+self.Name+',Sex:'+s转载 2017-05-08 17:32:09 · 4867 阅读 · 0 评论 -
python的可变与不可变数据类型
初学python的时候,可能会有很多疑惑,尤其是最先接触的所谓的“可变数据类型”和“不可变数据类型”。python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其实这个特点类似于JAVA,所以在python里面大家也不用担心类似于C/C++中的指针的复杂问题。下面本文将对python里面的“可变数据类型”和“不可变数据转载 2017-07-21 11:57:23 · 735 阅读 · 0 评论 -
python让列表倒序输出
a = [0,1,2,3,4,5,6,7,8,9]b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象b = a[1:3] 那么,b的内容是 [1,2]当i缺省时,默认为0,即 a[:3]相当于 a[0:3]当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]当i,j都缺省时,a[:]就相当于完整复制一份a了 b = a[i:j原创 2017-04-02 15:36:54 · 17752 阅读 · 1 评论 -
python面试题大全(一)
注:本面试题来源于网络,转载请注明来自http://www.cnblogs.com/goodhacker/p/3366618.html。1. (1)python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并...转载 2017-04-02 11:33:06 · 2164 阅读 · 0 评论 -
Python class中的__call__()方法
Python中,如果在创建class的时候写了call()方法, 那么该class实例化出实例后, 实例名()就是调用call()方法。例子class Animal(object): __call__(self, words): print "Hello: ", wordsif __name__ == "__main__": cat = Animal(转载 2017-04-01 17:45:32 · 2936 阅读 · 0 评论 -
python的内存管理机制
先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲(1)垃圾回收(2)引用计数(3)内存池机制一、垃圾回收:python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值。对Python语言来讲,对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量内存地址的分转载 2017-04-08 14:18:17 · 618 阅读 · 0 评论 -
Python面试必须要看的15个问题
本文由EarlGrey@编程派独家编译,转载请务必注明作者及出处。 原文:Sheena@codementor 译文:编程派引言想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python。下面这些问题涉及了与Python相关的许多技能,问题的关注点主要是语言本身,不是某个特定的包或模块。每一个问题都可以扩充为一个教程,如果可能的话。某些问题甚至会涉及多个领域。转载 2017-03-22 21:02:13 · 2334 阅读 · 0 评论 -
Python基本运算符
什么是操作符?简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符。 Python语言支持操作者有以下几种类型。算术运算符比较(即关系)运算符赋值运算符逻辑运算符位运算符会员操作符标识操作符让我们逐一看看所有的运算符。Python算术运算符:假设变量a持有10和变量b持有20,则:[ 查转载 2017-03-23 11:09:30 · 734 阅读 · 0 评论 -
浅析python 中__name__ = '__main__' 的作用
这篇文章主要介绍了python 中__name__ = '__main__' 的作用,对于初学者来说很有帮助,需要的朋友可以参考下很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的?有句话经典的转载 2017-03-23 11:31:39 · 345 阅读 · 0 评论 -
Python Json序列化与反序列化
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象。在python的标准库中,专门提供了json库与pickle库来处理这部分。 json的dumps方法和loads方法,可实现数据的序列化和反序列化。具体来说,dumps方法,可将json格式数据序列为Python的相关的数据类型;loa转载 2017-03-23 17:26:06 · 887 阅读 · 0 评论 -
Python设计模式——装饰模式(Decorator)
假如我们需要开发一个程序来展示一个人穿衣服的过程。#encoding=utf-8__author__ = 'kevinlu1010@qq.com'class Person(): def __init__(self,name): print '%s开始穿衣'%name def wear_tshirt(self): print '穿TSh转载 2017-03-23 18:41:36 · 482 阅读 · 0 评论 -
python中@classmethod @staticmethod区别
Python中3种方式定义类方法, 实例方式, @classmethod修饰方式, @staticmethod修饰方式.class A(object): def foo(self, x): print("executing foo(%s,%s)" % (self, x)) print('self:', self) @classmethod转载 2017-03-24 10:28:39 · 664 阅读 · 0 评论 -
python 里面的单下划线与双下划线的区别
Python 用下划线作为变量前缀和后缀指定特殊变量。_xxx 不能用'from moduleimport *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有转载 2017-03-24 16:26:54 · 3402 阅读 · 0 评论 -
Python-copy()与deepcopy()区别
版权声明:本文为博主原创文章,欢迎随时转载,转载时请务必注明出处,同时欢迎广大朋友指点评论。最近在实习,boss给布置了一个Python的小任务,学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,搞的博主就有点傻傻分不清啊,但是呢本着一探到底的精神,还是要查资料搞清楚这对好基友的区别。其实呢,copy()与deepcopy()之间的区分必须要涉及到pytho转载 2017-03-28 16:56:05 · 522 阅读 · 0 评论 -
单例模式优缺点
主要优点:1、提供了对唯一实例的受控访问。2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。3、允许可变数目的实例。 主要缺点:1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。2、单例类的职责过重,在一定程度上违背了“单一职责原则”。3、滥用单例将带来一些负面问题,如为了节省资源将数转载 2017-04-08 14:43:47 · 465 阅读 · 0 评论 -
写给Python初学者的设计模式入门
有没有想过设计模式到底是什么?通过本文可以看到设计模式为什么这么重要,通过几个Python的示例展示为什么需要设计模式,以及如何使用。 设计模式是什么?设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言转载 2017-04-08 14:46:32 · 1420 阅读 · 0 评论 -
and-or 技巧
如果你是一名C语言高手,当然对 bool ? a : b 表达式熟悉,这个表达式当 bool 为真时计算为 a,其它值则为 b。象很多编程技巧一样,它是一种诱人的便利。你可在Python中完成同样的事情,但是需要完全理解它是如何工作的,以避免不明显的毛病。例 2.17. and-or 技巧>>> a = "first">>> b = "second">>> 1 and a or转载 2017-04-01 16:19:21 · 455 阅读 · 0 评论 -
Python 基础知识
1. Python是如何进行内存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制一、对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况:1,一个对象分配一个新名称2,将其放入一个容器中(如列表、元组或字典)引用计数减少的情况:1,使转载 2017-04-01 15:29:09 · 493 阅读 · 0 评论 -
Python模块包中__init__.py文件的作用
在eclipse中用pydev开发Python脚本时,我遇到了一个这样的现象,当我新建一个pydev package时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很不了解这个空文件的作用是什么,因为没有什么东西可写在这里,所以我直接把这个文件给删掉了,结果我的包图标自动变为文件夹图标了,这是怎么回事呢! 原来在python模块的每一个包中,都有一个_转载 2017-04-11 00:07:21 · 607 阅读 · 0 评论 -
Python的zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:1.示例1:x = [1, 2, 3]y = [4, 5, 6]z = [7, 8, 9]xyz = zip(x, y, z)print xyz运行的结果是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]从这个结转载 2017-04-10 23:42:55 · 415 阅读 · 0 评论 -
python3字典排序
说实话,对字典进行排序,这个说法本身就有问题,实际上,你无法对操纵字典说,字典,在你的底层实现里,你就得按照我指定的顺序来排列,如果这样的话,字典就丧失了它的速度优势,它也不是一个字典了.好了,废话不多说,我这里稍微记录一下我的做法吧.python2里面原来是有dict.iteritems这样一个函数的,但是在python3里面给消除掉了,dict.itemitems实际返回的是一个lis转载 2017-04-10 23:32:35 · 1125 阅读 · 0 评论