Python 基础面试,看这篇文章画重点吧,Python 面试题 No1
为什么有这个系列的文章
一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从 Python 的面试题出发,分析和解答一些常见的面试题,并且总结一些文字。
每一讲涉及 5~10 道面试题,整个系列的文章初步规划有 20 篇。
今天的面试题
第 1 题:1 行代码实现 1 到 100 的和?
分析:这题考察的是对 Python 内置函数的了解程度
Python 常见的内置函数有
官方查询手册如下https://docs.python.org/3/library/functions.html
图片中我框选的是比较常用的一些,你可能见过,这题考察的是 sum 也就是求和具体的使用
sum(iterable[, start])
iterable -- 可迭代对象,如:列表、元组、集合。
start -- 指定相加的参数,如果没有设置这个值,默认为 0。
例如
python 一行代码如何实现 1~100 的和
还要用到第二个内置函数 range()
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如 range(5)等价于 range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有 5
step:步长,默认为 1。例如:range(0, 5) 等价于 range(0, 5, 1)
解答:
第 2 题:如何使用 Python 输出一个[斐波那契数列]Fibonacci
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。
例子:1、1、2、3、5、8、13、21、34、……
解法 1:
100 以内的斐波那契数列
解法 2:
递归的办法,这个需要数学公式的记忆了
在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
解法 3:
迭代,用递归当数据大的时候,会出现效率问题
经过试验,比迭代速度快很多 time.clock()说明
cpu 的运行机制:cpu 是多任务的,例如在多进程的执行过程中,一段时间内会有对各进程被处理。一个进程从从开始到结束其实是在这期间的一些列时间片断上断断续续执行的。所以这就引出了程序执行的 cpu 时间(该程序单纯在 cpu 上运行所需时间)和墙上时钟 wall time。
time.time()是统计的 wall time(即墙上时钟),也就是系统时钟的时间戳(1970 纪元后经过的浮点秒数)。所以两次调用的时间差即为系统经过的总时间。
time.clock()是统计 cpu 时间 的工具,这在统计某一程序或函数的执行速度最为合适。两次调用 time.clock()函数的插值即为程序运行的 cpu 时间。
解法 4:使用列表查看一下速度
当然,我看到一篇比较牛 X 的博客,博主后面 2 个办法,实在高级,贴给大家
https://blog.csdn.net/chichu261/article/details/83589767
第 3 题:列出几个 python 标准库
你先明确的是什么是 Python 标准库
Python 标准库(standard library)。标准库会随着 Python 解释器,一起安装在你的电脑中的。它是 Python 的一个组成部分。这些标准库是 Python 为你准备好的利器,可以让编程事半功倍。
文档手册可以查阅 > https://docs.python.org/zh-cn/3.7/library/index.html
了解这个内容,这道题回答起来就非常简单了
os 模块
re 模块
pickle 模块
datetime 模块
time 模块
math 模块
第 4 题:下面 Python 代码的运行结果是?
这种题目,考察的是代码默读能力
f(2)
f(3,[3,2,1])
f(3)
这个地方,你需要避免踩坑,一定要注意列表是可变的,如果单独的写没有任何问题,但是函数调用的三行代码放在一起就有点意思了
f(3,[3,2,1])
将 l 进行了重新赋值。但是第三次调用函数使用的依旧是第一次的 l,所以避免踩坑哦~~~~
f(3)运行的正确结果是[0,1,0,1,4]
第 5 题:python 实现列表去重的方法?
简单直接的办法,集合里面的元素不可以重复
循环判断去重
字典的 fromkeys 方法实现
今天的 5 道面试题答题完毕
nice girl 今天的 5 道面试题回答完毕~不知道你学到了多少,下篇博客见哦!
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/48a77f42c9919dfcd2d1df8b3】。文章转载请联系作者。
评论