面试题记录 - python问答题

记录遇到的题

  1. python 方法重写override/重载overwrite)
    不会

  2. Python中函数形参的*和**的区别

    (*)表示将参数作为元组来处理;(**)表示将参数作为字典来处理。

    def foo(*args, **kwargs):
        print 'args = ', args
        print 'kwargs = ', kwargs
    if __name__ == '__main__':
        foo(1,2,3,4)						# args =  (1, 2, 3, 4)  kwargs =  {}
        foo(a=1,b=2,c=3)					# args =  ()  kwargs =  {'a': 1, 'c': 3, 'b': 2}
        foo(1,2,3,4, a=1,b=2,c=3)			# args =  (1, 2, 3, 4) 	kwargs =  {'a': 1, 'c': 3, 'b': 2}
        foo('a', 1, None, a=1, b='2', c=3)	# args =  ('a', 1, None) 	kwargs =  {'a': 1, 'c': 3, 'b': '2'}
    

    这两个是python中的可变参数。args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用args和kwargs时,必须*args参数列要在kwargs前,像foo(a=1, b=‘2’, c=3, a’, 1, None, )这样调用的话,会提示语法错误SyntaxError: non-keyword arg after keyword arg

  3. 列表推导=列表解析----->创建列表方式
    结构(就是传说的一行代码) : 在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句,返回结果将是一个新的列表。

  4. Python和Java的区别

    • 动态类型和静态类型(两种语言处理变量的方式)
      Java强迫你在第一次声明变量时就定义其类型并且不允许你在后面的程序中更改它的类型。这就是静态类型。Python不许声明时定义变量类型,可以改变一个变量的类型.

    • Python中一切皆对象

    • Java的可移植性更强,它可以用于开发平台独立的应用。

  5. python 数据类型和java数据类型
    java的基本数据类型有八种:六种数字类型(byte,short,int,long,float,double)、一种字符类型(char)、一种布尔类型
    python中的数字类型没有byte,short,int,long之分,统一用int来表达,并且这数值变化中不用考虑溢出问题

  6. 哪种数据类型或者操作使用的多

  7. Python 中如何实现多线程?

  8. 怎么在系统里同时管理python2和python3

  9. 在一个工程里需要import很多包,当不同文件需要导入同一个包的不同版本该怎么办

  10. .Python怎么定义全局变量

  11. 快排与其他排序算法相比的优势是什么

  12. 解释继承

  13. 解释 Python 中的 help() 函数和 dir() 函数。

help() 函数返回帮助文档和参数说明:

运行结果如下:

Help on function copy in module copy

copy(x)

Shallow copy operation on arbitrary Python objects.

See the module』s __doc__ string for more info.

dir() 函数返回对象中的所有成员 (任何类型)
  1. 当退出 Python 时是否释放所有内存分配?

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

  1. 请解释 Python 中的闭包?

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

  1. 解释 Python 中的//,%和**运算符

//运算符执行地板除法,返回结果的整数部分 (向下取整)。

用/符号除法结果为 3.5。

符号表示取幂. ab 返回 a 的 b 次方

  1. Python 中有多少种运算符,解释算术运算符。

在 Python 中我们有 7 中运算符:算术运算符、关系 (比较) 运算符、赋值运算符、逻辑运算符、位运算符、成员运算符( in 和 not in)、身份运算符(is 和 not is )。

解释 Python 中的位运算符

此运算符按二进制位对值进行操作。

1. 与 (&) 返回按位与结果

2

2. 或 (|) 返回按位或结果

3

3. 异或 (^) 返回按位异或结果

1

4. 取反 (~) 返回按位取反结果

5. 左移位 (<<) 将符号左边数的二进制左移右边数位


1 的二级制 001 左移 2 位变成 100 也即十进制的 4

6. 右移位 (>>)
  1. 问什么标识符不建议使用下划线开头?

因为在 Python 中以下划线开头的变量为私有变量,如果你不想让变量私有,就不要使用下划线开头
返回主目录

你可能感兴趣的:(面试题记录 - python问答题)