Python面试可能会问到的问题,你会几个?

640?wx_fmt=gif

      随着Python时代的到来(AI会用到Python,区块链会用到Python,大数据会用到Python,自动化会用到Python.......Python好像无所不能了2_05.png),我们现在的Python职位越来越多,Python工程师也越来越多了,大家都争先恐后的去搞Python,搞什么人工智能了,就包括一些其他行业小白也想进军人工智能市场了u1F631.png,AI这么火真的是谁都可以做吗?小编当初毕业的时候做的是Java,后来换到做了Python,当时就觉得做Python一是简单,二是需求量大,还有就是项目结束的时候用它编写自动化脚本来的更方便些。

640?wx_fmt=png

       对于那些培训班说,学了Python就能懂AI的就纯属瞎扯淡,花哥两万块去某内做个培训Python你就是AI工程师了?你就会深度学习了?你就会在AI界有立足之地了?

哦哦,那你学的不是AI,应该是API。

      不是所有人都有天赋有能力来做这个行业的,大学高数线代离散都没及格的就想从Java进军人工智能市场,那你就省省吧,毕竟如果连最基本的线代离散都不会,这样的AI我看不是AI,是BI(悲哀)!

640?wx_fmt=png

      真的,如果你不像小编线代离散绩点都逼近4.0的,那你就好好做Java吧,机器学习什么的真的不是你该玩的,尤其是培训班,就更不要去了。当然如果你是做开发转测试,那这个还好,这个一般培训培训(或者自己学学)就能掌握了,应该没什么太大的难度。 

       总而言之就是不要看到什么火就去做什么,盲目跟风只会毁了自己,尤其是花高价钱去某内培训,然后出来发现自己和原来并没有什么两样,只不过会调api了,会看Python代码了,然后就没有然后了。。。。

       出于自己对自己负责的心态,如果真的想学AI,你可以去coursera上看看吴恩达的教程(开始是免费的,应该够你学了),如果能看得懂,做的会,那恭喜你,你可以考虑进军AI市场了,当然,这只是开始,后面调参,量化,剪枝,防拟合会有你受的,总而言之,这并不是一条简单的道路,任何光鲜的背后都是枯燥无味的。

       还有一点要说的是,Python只是一门语言,任何情况下语言都只是一门工具,你做的事情才是最后的结果,所以别听那些培训班胡说八道,学了Python就是学了AI,真正的AI是要从理论学起的,或者说AI的课程就是理论与计算,与Python无关,Python只是提供了相关的库,方便你调用而已,给你两行代码告诉你这是分类聚合,即使你看的懂API,可你真的懂吗?我想大家应该是心知肚明的,没有好的数学功底就好好当码农吧,其实挖代码也挺不错的,久而久之你挖的代码也能帮你找回你作为程序猿的自信呢!

废话说了那么多,下面来看看Python面试可能会遇到的知识点吧(纯Python知识点)

lambda函数是什么?

lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

lambda函数:首要用途是指点短小的回调函数

lambda [arguments]:expression

Python中pass是干嘛的?

pass语句不会执行任何操作,一般作为占位符或者创建占位程序。

while False:

             pass

(看到它就像没看到就行)

如何在一个函数里面设置一个全局的变量?

解决方法:在函数的开始插入一个global声明:

def foo()

  global x

匹配HTML标签的时候,<.*>和<.*?>有什么区别?

没有问号是贪婪模式,有问号是懒惰模式,如果是没有问号,它可以连续匹配多个相同的目标标签,如果是加了?变成懒惰模式,它就会匹配到一个就停止匹配。

a=[1, 2, 3, 4, 5],列表a中的偶数位置的元素进行加3后求和?

sums = sum(map(lambda x: x + 3, a[1::2]))

列表的sort方法和 sorted的区别是什么?

sort 是list的方法,改变list对象的顺序,返回值为None sorted是Python的内置方法,适用iterable对象,返回值是新列表,不影响原来的iterable的顺序

有一篇英文文章保存在 a.txt 中,请用python实现统计这篇文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数(只考虑空格,标点符号可忽略)

640?wx_fmt=png

Python函数中经常有 *args,**kwargs 这两个参数,它们是什么意思,为什么要使用它们?

都是不定长参数,

*args返回的是tuple,

*kwargs返回的是dictionary。

Python中的变量作用域(变量查找顺序)

记住LEGB 

local 局部变量--->enclosed 闭包作用域 ----> Global 全局---->built-in变量

如图,输出结果

640?wx_fmt=png

1,1,1     1,2,1    3,2,3

1 1 1 继承自父类的类属性x,所以都一样,指向同一块内存地址

1 2 1 更改Child1,Child1的x指向了新的内存地址

3 2 3 更改Parent,Parent的x指向了新的内存地址

Python是怎样管理内存的?

Python的内存管理是由私有heap空间管理的。所有的Python对象和数据结构都在一个私有heap中。程序员没有访问该heap的权限,只有解释器才能对它进行操作。为Python的heap空间分配内存是由Python的内存管理模块进行的,其核心API会提供一些访问该模块的方法供程序员使用。Python有自带的垃圾回收系统,它回收并释放没有被使用的内存,让它们能够被其他程序使用。

数组和元组之间的区别是什么?

数组和元组之间的区别:数组内容是可以被修改的,而元组内容是只读的。另外,元组可以被哈希,比如作为字典的关键字。

参数按值传递和引用传递是怎样实现的?

Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法被改变。但是如果一个对象是可以被修改的,你可以改动对象。

Python中的unittest是什么?

在Python中,unittest是Python中的单元测试框架。它拥有支持共享搭建、自动测试、在测试中暂停代码、将不同测试迭代成一组,等等的功能。

Python中的模块和包是什么?

在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块,并可以引用其他的模块,比如对象和属性。一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。

听说有气质的人都会关注这个公众号!

640?wx_fmt=jpeg

文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/100581782

(完)