Python 面试题解析
编者按:
恰逢金三银四招聘季, 很多朋友都在忙着跳槽找工作, 不断的面试...... 我们知道网上有非常多面试题的解析, 但是其中往往是前几年的老题了. 为了帮助小伙伴们能够在 Python 工作面试中脱颖而出, 再此特别奉上 2019 年 11 道最新 Python 面试大题及答题思路解析.
1, 请用 python 编写函数 find_string, 从文本中搜索并打印内容, 要求支持通配符星号和问号.
例子:
- >>>find_string('hello\nworld\n','wor')
- ['wor']
- >>>find_string('hello\nworld\n','l*d')
- ['ld']
- >>>find_string('hello\nworld\n','o.')
- ['or']
解析:
- def find_string(str_in,pat):
- import re
- return re.findall(pat,str_in,re.I)
2, 看你 T 恤上印着: 人生苦短, 我用 Python, 你可否说说 Python 到底是什么样的语言? 你可以比较其他技术或者语言来回答你的问题.
解析:
这里是一些关键点: Python 是解释型语言. 这意味着不像 C 和其他语言, Python 运行前不需要编译. 其他解释型语言包括 PHP 和 Ruby.
1.Python 是动态类型的, 这意味着你不需要在声明变量时指定类型. 你可以先定义 x=111, 然后 x="I'm a string".
2.Python 是面向对象语言, 所有允许定义类并且可以继承和组合. Python 没有访问访问标识如在 C++ 中的 public, private, 这就非常信任程序员的素质, 相信每个程序员都是 "成人" 了~
3. 在 Python 中, 函数是一等公民. 这就意味着它们可以被赋值, 从其他函数返回值, 并且传递函数对象. 类不是一等公民.
4. 写 Python 代码很快, 但是跑起来会比编译型语言慢. 幸运的是, Python 允许使用 C 扩展写程序, 所以瓶颈可以得到处理. Numpy 库就是一个很好例子, 因为很多代码不是 Python 直接写的, 所以运行很快.
5.Python 使用场景很多 - web 应用开发, 大数据应用, 数据科学, 人工智能等等. 它也经常被看做 "胶水" 语言, 使得不同语言间可以衔接上.
6.Python 能够简化工作 , 使得程序员能够关心如何重写代码而不是详细看一遍底层实现.
- >>>a=[1,2,4,2,4,5,6,5,7,8,9,0]
- >>> b={
- }
- >>>b=b.fromkeys(a)
- >>>c=list(b.keys())
- >>> c
- a.sort()
- last=a[-1]
- for i inrange(len(a)-2,-1,-1):
- if last==a[i]:
- del a[i]
- else:last=a[i]
- print(a)
- lambda [arguments]:expression
- >>> a=lambdax,y:x+y
- >>> a(3,11)
- s=input('input:')
- l=len(s)
- if l<2:
- print('')
- else :
- if l>3:
- s=s[:2]+s[-2:]
- print(s)
- def f(n):
- result = []
- i = 2
- str1 = str(n) + '='
- while n > 1:
- if n % i == 0:
- n /= i
- result.append(str(i))
- i -= 1
- i += 1
- str1 += '*'.join(result)
- return str1
- if __name__ == '__main__':
- for i in range(100, 120):
- print(f(i))
- def bubble_sort(arry):
- #获得数组的长度
- n = len(arry)
- for i in range(n):
- for j in range(1,n-i):
- #如果前者比后者大
- if arry[j-1] > arry[j] :
- #则交换两者
- arry[j-1],arry[j] = arry[j],arry[j-1]
- return arry
- s=input('pls input a string of numbes:')
- s_=s[::-1]
- answer='isn\'t'
- if s_==s:
- answer='is'
- print(s,answer,'Palindrome number')
来源: http://developer.51cto.com/art/201903/593936.htm