社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

年薪20万阿里巴巴Python工程师面试题曝光

马哥Linux运维 • 6 年前 • 628 次点击  

作为Python工程师,进入大公司是开启职业新起点的关键,今天马哥教育Python智囊团的小伙伴特别分享了其在阿里巴巴面试Python工程师的题目和经历,希望对广大Python工程师的求职者有一个帮助。




首先我们来看下阿里巴巴对Python工程师招聘岗位要求:


【岗位定义】Python工程师

【岗位薪资】15K-30K

【基本要求】北京-朝阳区/学历不限/经验1-3年

【职位描述】

1.、负责基于python的web快速开发、相关优化以及产品部署 ;

2、搭建系统开发环境,完成系统框架和核心代码的实现,负责解决开发过程中的技术问题; 

3、负责Python技术的相关产品规划、需求、设计、开发、测试等研发工作;

4、研究并跟踪IT前沿技术。 


【任职资格】


1、精通 python 语言开发,有1-3年以上后台开发经验;


2、熟悉web开发框架(django/tornado/flask),熟悉Linux操作系统及shell编程,熟悉BootStrap,熟练使用HTML,CSS,JavaScript等基本前端技术


3、熟悉mysql,redis,mongo等常用数据库,具有数据库开发和设计能力; 


4、了解异步框架、集群与负载均衡,消息中间件,容灾备份等技术; 


5、有全栈开发经验或大型在线服务开发经验优先




接来看下阿里巴巴Python工程师的真题:

1、请尽可能列举python列表的成员方法,并给出一下列表操作的答案:

(1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?

(2) 一行代码实现对列表a中的偶数位置的元素进行加3后求和?

(3) 将列表a的元素顺序打乱,再对a进行排序得到列表b,然后把a和b按元素顺序构造一个字典d。


2、用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数,并解答以下问题?(标点符号可忽略)

(1) 创建文件对象f后,解释f的readlines和xreadlines方法的区别?

(2) 追加需求:引号内元素需要算作一个单词,如何实现?


3、简述python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。


4、用python编写一个线程安全的单例模式实现。


5、请回答一下问题:

(1) 阐述一下装饰器,描述符(property)、元类的概念,并列举其应用场景;

(2) 如何动态获取和设置对象的属性。


6.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)

答:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}

深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

 

7.介绍一下except的用法和作用?

答:try…except…except…[else…][finally…]

执行try下的语句,如果引发异常,则执行过程会跳到except语句。对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。

try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行

如果存在finally语句,最后总是会执行。


8.Python中pass语句的作用是什么?

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


9.介绍一下Python下range()函数的用法?

答:列出一组数据,经常用在for  in range()循环中


10.如何用Python来进行查询和替换一个文本字符串?

答:可以使用re模块中的sub()函数或者subn()函数来进行查询和替换,

格式:sub(replacement, string[,count=0])(replacement是被替换成的文本,string是需要被替换的文本,count是一个可选参数,指最大被替换的数量)

>>> import re

>>>p=re.compile(‘blue|white|red’)

>>>print(p.sub(‘colour’,'blue socks and red shoes’))

colour socks and colourshoes

>>>print(p.sub(‘colour’,'blue socks and red shoes’,count=1))

colour socks and redshoes

subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量

 

11.Python里面match()和search()的区别?

答:re模块中match(pattern,string[,flags]),检查string的开头是否与pattern匹配。

re模块中research(pattern,string[,flags]),在string搜索pattern的第一个匹配值。

>>>print(re.match(‘super’, ‘superstition’).span())

(0, 5)

>>>print(re.match(‘super’, ‘insuperable’))

None

>>>print(re.search(‘super’, ‘superstition’).span())

(0, 5)

>>>print(re.search(‘super’, ‘insuperable’).span())

(2, 7)


12.用Python匹配HTML tag的时候,<.>和<.>有什么区别?

答:术语叫贪婪匹配( <.> )和非贪婪匹配(<.> )

例如:

test

<.> :

test

<.> :


13.Python里面如何生成随机数?

答:random模块

随机整数:random.randint(a,b):返回随机整数x,a<=x<=b

random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。

随机实数:random.random( ):返回0到1之间的浮点数

random.uniform(a,b):返回指定范围内的浮点数。


14.有没有一个工具可以帮助查找python的bug和进行静态的代码分析?

答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告

Pylint是另外一个工具可以进行codingstandard检查


15.如何在一个function里面设置一个全局的变量?

答:解决方法是在function的开始插入一个global声明:

def f()

global x


16.单引号,双引号,三引号的区别

答:单引号和双引号是等效的,如果要换行,需要符号(\),三引号则可以直接换行,并且可以包含注释

如果要表示Let’s go 这个字符串

单引号:s4 = ‘Let\’s go’

双引号:s5 = “Let’s go”

s6 = ‘I realy like“python”!’

这就是单引号和双引号都可以表示字符串的原因了




————近期开班————

《马哥教育Python自动化开发全能实战班》是马哥教育联合阿里、豆瓣、大众点评等一线Python工程师,根据目前企业需求的Python开发人才进行了深度定制,加入大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论到日志分析、todolist任务管理系统、类Flask框架多人博客、CMDB资产管理、任务调度系统、运维流程系统六大项目实战,手把手教学让你从0开始蜕变成Hold住年薪30万的Python自动化开发人才。

10期面授班:2018年03月05号(北京)

11期网络班:2018年03月17号 网络

扫描二维码领取学习资料

更多Python好文请点击【阅读原文】哦

↓↓↓


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/TulRUNRRIT
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/5972
 
628 次点击