python面试题--初级(一)

一、 Python 中有多少种运算符?

  这类面试问题可以判断你的 Python 功底,可以举一些实例来回答这类问题。

在 Python 中我们有 7 中运算符:

算术运算符、关系 (比较) 运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

详解:

<1>  算术运算符:

算数运算符有:+、-、*、/、%(取余)、//(整除)、**(幂)

 

<2>  关系比较、赋值、逻辑运算符:

 

<3>  位运算符

 

<4>  成员运算符

 

 

<5>   身份运算符

二、解释一下 is 与 == 区别:

  is 用于判断 两个变量 引用对象是否为同一个
  == 用于判断 引用变量的值 是否相等

Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等。
is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。

三、python中pass语句的作用:

  占位符主要作用就是占位,让代码整体完整。
  拓展: 类似的 break 语句可以跳出循环。
             continue 语句可以跳到下一轮循环。

四、 请解释 Python 中的闭包?

 

如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就是一个闭包

 

五、能否解释一下 *args 和 **kwargs?

*args 用来将参数打包成tuple给函数体调用
**kwargs 打包关键字参数成dict给函数体调用

如果我们不知道将多少个参数传递给函数,比如当我们想传递一个列表或一个元组值时,就可以使用*args。

当我们不知道将会传入多少关键字参数时,使用**kwargs 会收集关键字参数。

六、解释 Python 中的 join() 和 split() 函数

join() 函数可以将指定的字符添加到字符串中。          ‘1,2,3,4,5’

split() 函数可以用指定的字符分割字符串                    [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

七、什么是猴子补丁?

(1)运行时动态替换模块的方法
(2)运行时动态增加模块的方法

八、什么是鸭子类型?

鸭子类型关注点在对象的行为,而不是类型。在 Python 和 Go 中都可以实现鸭子类型。

定义:如果走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子(If it walks like a duck and quacks like a duck, it must be a duck)

鸭子类型是编程语言中动态类型语言中的一种设计风格,一个对象的特征不是由父类决定,而是通过对象的方法决定的。

九、Python 区分大小写吗?

Python的变量名是区分大小写的,例如:name和Name就是两个变量名,而非相同变量。

变量(variable)是学习python初始时,就会接触到的一个新的知识点,也是一个需要熟知的概念。python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型。

十、当退出 Python 时是否释放所有内存分配?

答案是否定的。那些具有对象循环引用或者全局命名空间引用的变量,在 Python 退出是往往不会被释放

另外不会释放 C 库保留的部分内容。

如何在python中管理内存:
Python 用一个私有堆内存空间来放置所有对象和数据结构,我们无法访问它。由解释器来管理它。不过使用一些核心 API,我们可以访问一些 Python 内存管理工具控制内存分配。

 

循序渐进,厚积薄发,量变引起质变,加油!!!2019.11.29  

 

posted @ 2019-11-29 21:02  python厚积薄发  阅读(504)  评论(0编辑  收藏  举报