经常会问到的Python面试题
Hi,在多多少少的Python开发或是测试面试中经常会问到一些关于Python的基础问题,那我们今天就来看看这些问题吧!
首先来个最简单的:
什么是Python?使用Python有什么好处?
大家都知道Python是一门编程语言(我想应该很少有人说它是蟒蛇),使用Python的好处是什么呢?当然是因为它很简单啦!它能用最简洁的代码高效的完成一件事。它有自己的对象,模块机制,异常处理机制,内存管理机制。这使得我们用起来的时候就很方便。
用Python写的代码异常的简洁,特别方便读,而且代码的扩展性也强,有一些自己的开源的数据结构,使用者能够简单上手。
Python是如何运行的?
Python是一种解释性语言,它的源代码可以直接运行。Python解释器会将源代码转换成中间语言,之后再翻译成机器码再执行。
什么是pickling和unpickling?
Pickle模块读入任何Python对象,将它们转换成字符串,然后使用dump函数将其转储到一个文件中——这个过程叫做pickling。反之从存储的字符串文件中提取原始Python对象的过程,叫做unpickling。
Python是怎样管理内存的?
Python的内存管理是由私有heap空间管理的。所有的Python对象和数据结构都在一个私有heap中。程序员没有访问该heap的权限,只有解释器才能对它进行操作。为Python的heap空间分配内存是由Python的内存管理模块进行的,其核心API会提供一些访问该模块的方法供程序员使用。Python有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序使用。
列表和元组之间的区别是什么?
列表和元组之间的区别:列表内容是可以被修改的,而元组内容是只读的。另外,元组可以被哈希,比如作为字典的关键字。
那为什么Python中有了列表还需要元组呢?
(引用解答:https://bbs.csdn.net/topics/380255980)
元组
参数按值传递和引用传递是怎样实现的?
Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法被改变。但是如果一个对象是可以被修改的,你可以改动对象。
值传递:
1
2
3
4
5
6
|
a = 1
def f(a):
a = a + 1
return a
print f(a)
print a
|
输出:2 1
引用传递:
1
2
3
4
5
6
7
|
b = [ 1 , 2 , 3 ]
def f2 (b):
b[ 0 ] = b[ 0 ] + 1
return b
print f2(b)
print b
|
输出:[2, 2, 3] [2, 2, 3]
Python都有哪些自带的数据结构?
Python自带的数据结构分为可变的和不可变的。可变的有:数组、集合、字典;不可变的有:字符串、元组、数字。
Python中的lambda是什么?为什么lambda没有语句?
lambda常被用于代码中的单个表达式的匿名函数。没有语句的原因,是它被用于在代码被执行的时候构建新的函数对象并且返回。
lambda的一般形式是关键字lambda,之后是一个或多个参数(与一个def头部内用括号括起来的参数列表及其相似),紧跟的是一个冒号,之后是一个表达式:
lambda argument1,argument2,... argumentN:expression using argument
lambda和普通函数的区别
普通函数:
def Demo_Func(x):
return 233 * x + 1
Demo_Func(2)
lambda:
lambda x : 233 * x + 1
今天就讲这么多吧!
下期见!
文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/tongtongjing1765/article/details/100581679
- 点赞
- 收藏
- 关注作者
评论(0)