书接上回,我们继续来说说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 运算结果一样。

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

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

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

    最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧.也是自己想学的东西太多了(说白了就是基础太差了,只是know how,不能做到konw w ...

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

    一.Q:如何用Python来进行查询和替换一个文本字符串? A:可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0]) re ...

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

    一.Q:用Python输出一个Fibonacci数列?(斐波那契额数列) A:我们先来看下代码 #!/usr/bin/env python # -*- coding: utf-8 -*- def fi ...

  4. Python基础面试题整理

    基础 Python中lambda是什么意思 Python中的pass是什么意思 作为解释型语言,Python如何运行 什么是Python的单元测试 在Python中unittest是什么 如何将数字转 ...

  5. Python基础面试题库

    Python基础面试题库   Python是一门学习曲线较为容易的编程语言,随着人工智能时代的到来,Python迎来了新一轮的高潮.目前,国内知乎.网易(游戏).腾讯(某些网站).搜狐(邮箱).金山. ...

  6. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  7. python基础面试题(全网最全!)

    目录 1.为什么学习Python? 2.通过什么途径学习的Python? 3.Python和Java.PHP.C.C#.C++等其他语言的对比? 4.简述解释型和编译型编程语言? 5.Python解释 ...

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

    面试总括篇 技术技能 开发语言:python 数据库:mysql 操作系统;linux 网络协议基础 测试技能:自动化(UIselenium+接口)+性能 业务知识 测试工程师执业规划 初级--> ...

  9. python基础===flask使用整理(转)

    flask 使用的一些整理 资源 Flask 文档|英文| expore flask| 快速教材| flask-admin| Flask-DebugToolbar| Flask-Login| Flas ...

随机推荐

  1. hihocoder #1607 : H星人社交网络(双指针)

    传送门 题意 分析 可知对与某个数x,设其可发送信息的边界为[L,R],那么随着x的递增,[L,R]也右移,故可对输入数排序,做一次双指针即可 trick 代码 //1. Aj < 1/8 * ...

  2. 洛谷P1291 百事世界杯之旅

    P1291 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听, ...

  3. 多线程 NSThread 了解

    用NSThread创建子线程的3种方法   //  DYFViewController.m //  623-02-pthread // //  Created by dyf on 14-6-23. / ...

  4. centos 7.3 安装vmtools,解决无法编译共享文件夹模块

    环境说明: vmware 12.5.0 build-4352439 centos 7.3.1611   64位,内核版本:Linux version 3.10.0-514.16.1.el7.x86_6 ...

  5. mysql--浅谈查询1

    这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师. 依赖软件:mysql5.6 系统环境:win 在谈查询之前,先说一个特别重要的概念 一定将列名看成变量,既然是变量就可以运算 一定将 ...

  6. 开源Html5+Websocket+Mqtt实时聊天室

    本应用示例使用Coolpy7作为Mqtt服务器并启用Websocket代理完美支持高并发大流量即时通过能力,本示以即时通信聊天为为例.还可以应用到其他软件应用如:网页客服系统.网站信息通知.网页即时通 ...

  7. D. Pair Of Lines( Educational Codeforces Round 41 (Rated for Div. 2))

    #include <vector> #include <iostream> #include <algorithm> using namespace std; ty ...

  8. C# 面向对象之面向接口

    接口的定义 与类不同的是接口用interface关键字 (1)接口中所有成员不能添加任何修饰符,默认为public,如果显示指定修饰符将会出现编译错误; (2)接口中不能包含字段.运算符重载.实例构造 ...

  9. #10:wannanewtry——6

    HDU3401,列完转移方程拆分一下,正着.反着跑优先队列优化代表买或卖.初始化不大会搞…… #include <bits/stdc++.h> using namespace std; c ...

  10. 17 文件和网络I/O

    1       文件和网络I/O 1.1  文件处理 groovy向java所提供的File 类,新增了几个方便的方法.分别是:eachLine和.text. package file class F ...