python基础面试题整理---从零开始 每天十题(02)

  书接上回,我们继续来说说python的面试题,我在各个网站搜集了一些,我给予你们一个推荐的答案,你们可以组织成自己的语言来说出来,让我们更好的做到面向工资编程

一、Q:说说你对zen of python的理解,你有什么办法看到它。

  A:The Zen of Python是Python语言的指导原则,遵循这些基本原则,输入import this,然后直接运行即可  

二、Q:什么是元类(meta_class)

  A:我们定义类来创建对象,但是现在我们知道类也是对象。那么是通过什么来创建类呢?答案就是元类。我们可以将元类称之为类工厂。如果我们定义了metaclass属性,Python就会使用这个元类来创建类Foo。注意,编译器首先读取class Foo(object),这时并不会在内存中创建Foo类。Python会继续查找类定义中的__meatclass__,如果找到了,就使用它来创建类Foo,如果没有找到,就使用type来创建类。Python工作流程如下:首先检查Foo中是否具有属性__metaclass__?如果找到,就使用__metaclass__定义的元类在内存中创建一个类对象。如果在类定义中没有找到这个属性,就在模块级别中进行查找。如果还是没有找到,就会使用父类Bar中的元类来创建类。注意:类中的__metaclass__属性不会被子类继承,但是父类中的__class__会被继承。这里写的比较片面,大家可以参考 https://www.jianshu.com/p/cec91b9ef2a4

三、Q:对比一下dict中 items 与 iteritems

  A:items是可以将字典中的所有项,以列表方式返回。因为字典是无序的,所以用items方法返回字典的所有项,也是没有顺序的。

     iteritems方法作用:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。

四、Q:有用过with statement吗?它的好处是什么?
  A:with语句的作用是通过某种方式简化异常处理,它是所谓的上下文管理器的一种

 with open(‘output.txt‘, ‘w‘) as f:
        f.write(‘Hi there!‘)

  当你要成对执行两个相关的操作的时候,这样就很方便,以上便是经典例子,with语句会在嵌套的代码执行之后,自动关闭文件。这种做法的还有另一个优势就是,无论嵌套的代码是以何种方式结束的,它都关闭文件。如果在嵌套的代码中发生异常,它能够在外部exception handler catch异常前关闭文件。如果嵌套代码有return/continue/break语句,它同样能够关闭文件

五、Q:说说decorator的用法和它的应用场景,如果可以的话,写一个decorator(装饰器)

  A:装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数,返回包装后的函数:

def d(fp):
    def _d(*arg, **karg):
        print "do sth before fp.."
        r= fp(*arg, **karg)
        print "do sth after fp.."
        return r
    return _d

@d
def f():
    print "call f"

应用场景应用场景:引入日志,函数执行时间统计,执行函数前预备处理,执行函数后清理功能,权限校验等场景,缓存,事务处理。当函数可以作为参数传递的语言,可以使用装饰器

六、Q:如何在一个函数内部修改全局变量

  A:利用global 修改全局变量

#!/usr/bin/env python
# -*- coding: utf-8 -*-

a = 1
def change():
    global a
    a = 3
print(a)
change()
print(a)

七、Q:列出5个python标准库

  A:os:提供了不少与操作系统相关联的函数

     sys:   通常用于命令行参数

     re:   正则匹配

     math: 数学运算

     datetime:处理日期时间

八、Q:简述面向对象中__new__和__init__区别

  A:1、__new__至少要有一个参数,代表当前类,此参数在实例化时由Python解释器自动识别

     2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名))__new__出来的实例,或者直接是object的__new__出来的实例

     3、__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

     4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。

九、Q:python中生成随机整数、随机小数、0--1之间小数方法

  A:随机整数:random.randint(a,b),生成区间内的整数

     随机小数:习惯用numpy库,利用np.random.randn(5)生成5个随机小数

     0-1随机小数:random.random(),括号中不传参

十、Q:python2和python3区别?列举5个

  A:1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print(‘hi‘)

       Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print ‘hi‘

    2、python2 range(1,10)返回列表,python3中返回迭代器,节约内存

    3、python2中使用ascii编码,python3中使用utf-8编码

    4、python2中unicode表示字符串序列,str表示字节序列

   python3中str表示字符串序列,byte表示字节序列

   5、python2中为正常显示中文,引入coding声明,python3中不需要

   6、python2中是raw_input()函数,python3中是input()函数

   7、浮点数除法操作符“/”和“//”的区别

    "/":     

    Python2:若为两个整形数进行运算,结果为整形,但若两个数中有一个为浮点数,则结果为浮点数;

    Python3:为真除法,运算结果不再根据参加运算的数的类型。

    "//":
    Python2:返回小于除法运算结果的最大整数;从类型上讲,与"/"运算符返回类型逻辑一致。
    Python3:和 Python2 运算结果一样。

  题目都是各种散装百度来的,答案也是如此,但是自己写了一遍,也读了一遍,也觉得自己收获了不少。

原文地址:https://www.cnblogs.com/cxiaocai/p/11026047.html

时间: 2024-10-07 20:03:38

python基础面试题整理---从零开始 每天十题(02)的相关文章

python基础面试题整理---从零开始 每天十题(01)

最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧.也是自己想学的东西太多了(说白了就是基础太差了,只是know how,不能做到konw why). 不说那些毒鸡汤了,我们来说说我们今天的python基础面试题吧. 一,Q:python的优缺点有什么? A:优点: 1,基础语法简单易学,对于初学者来说,语法还是相对简单的,比较容易学习,网上的学习资料也很多.    2,面向对象,在python里继承和封装较多,而python的多态还是相

python基础面试题整理---从零开始 每天十题(04)

一.Q:如何用Python来进行查询和替换一个文本字符串? A:可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0]) replacement是被替换成的文本 string是需要被替换的文本 count是一个可选参数,指最大被替换的数量,示例: #!/usr/bin/env python # -*- coding: utf-8 -*- import re p = re.compile('(blue|white|red)'

Python基础班每日整理(六)

03_面向对象_day03 类属性和实例属性的概念.类属性是给类对象(类是一个特殊的对象)中定义的属性,通常用来记录与这个类相关的特征,类属性不会用于记录具体对象的特征.类属性的定义是在初始化方法之外的实例对象的属性叫做实例属性,在初始化方法内部定义 类属性和实例属性的访问类属性的访问是类名.类属性实例属性的访问是实例对象.属性名,也可以在类内部使用self.属性名访问 类方法的定义和使用br/>@classmethoddef 类方法名(cls):pass需要修饰器@classmethod来标识

python测试工程师高端基础面试题整理

面试总括篇 技术技能 开发语言:python 数据库:mysql 操作系统;linux 网络协议基础 测试技能:自动化(UIselenium+接口)+性能 业务知识 测试工程师执业规划 初级-->中级-->高级-->资深或者测试经理(汇报+组内协调+部门协调) 面试类型 技术面试:广博的技术面+专精的技术方向 项目面试:为团队做了什么+为项目做了什么+为公司做了什么 综合素质面试:团队协作能力+团队管理能力+核心竞争能力(学习能力) 精彩的自我介绍 深刻的第一印象 优秀的语言表达能力 亲

架构师必备之常见面试题整理——数据库灵魂十问!

常见的数据库面试题有哪些 (一)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句. 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了. 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率 可以一定程度上确保数据安全 (二)索引是什么?有什么作用以

.NET基础面试题整理

今年毕业,本学期找工作期间在面试前做的一些临时的准备 以下的关于老赵分享的面试题解答参考了手头的书籍和视频教程,以及网上的资料,现整理出来希望对大家有所帮助,不对或欠佳的地方望大家指出来我好改正. 1.什么是.NET?什么是CLI?什么是CLR?IL是什么?   (1).net用于代码编译和执行的集成托管环境,换句话,它管理应用程序运行的方方面面,包括首次运行的编译,为程序分配内存存储数据和指令,对于应用程序授予或拒绝相应的权限,并启动管理应用程序的执行,剩余内存的在分配.由于所有.net应用程

Python基础班每日整理(一)

01_Linux基础1.操作系统的作用?操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好硬件设备.2.Linux中根目录和家目录分别用什么表示?/表示根目录.~表示家目录3.Linux中相对路径和绝对路径?以根目录(/)或者家目录(~)开始的路径称为绝对路径,反之称为相对路径4.常用终端命令的介绍.ls list 查看当前文件夹下的内容pwd print wrok directory 查看当前所在文件夹cd [目录名] change directory 切换文件夹touch [文件名]

Python基础班每日整理(二)

02_Python基础_day02 Python中注释的作用?单行和多行注释在程序中对某些代码进行标注说明,增强程序的可读性.单行注释:以#号开头,再加一个空格,后面跟上注释内容TODO注释:# TODO 注释内容 备忘功能,可以记录待开发的程序多行注释:一对连续的三个双引号"""注释内容""" 计算机的三大件CPU.内存.硬盘 程序执行原理?程序没运行之前保存在硬盘上,运行之后加载到内存,然后CPU执行内存中程序代码 变量的作用?如何定义变量?

Python基础班每日整理(四)

02_Python基础_day06 字符串的定义字符串就是一串字符,用一对儿单引号或者双引号括起来 字符串切片切片就是使用索引值,从一个大的字符串中切出小的字符串,适用于字符串.元组.列表.基本语法是 字符串[开始索引:结束索引:步长],默认步长为1,索引从0开始,如果倒序切片,索引从-1开始. Python内置的公共方法len.del.max.min.cmp 列表"+"和extend.append的区别两个列表相加得到了一个全新的列表extend(列表),是给原来的列表又扩展了一个新