5道Python数据分析⾯试题
转⾃ | 爱数据原统计⽹
1
1⾏代码实现1到100的和?
分析:这题考察的是对Python内置函数的了解程度,Python常见的内置函数有。
图⽚中我框选的是⽐较常⽤的⼀些,你可能见过,这题考察的是sum也就是求和
具体的使⽤
sum(iterable[, start])
1. iterable – 可迭代对象,如:列表、元组、集合。
2. start – 指定相加的参数,如果没有设置这个值,默认为0。
例如ppt模板下载的网站免费
sum([1,2,3]) # 结果为6
sum([1,2,3],5) # 结果为11
python⼀⾏代码如何实现1~100的和
还要⽤到第⼆个内置函数 range()
range(start, stop[, step])
1. start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
2. stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
3. step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
解答:
sum(range(1,101))
2
使⽤Python输出[斐波那契数列]Fibonacci
斐波那契数列(Fibonacci sequence),⼜称黄⾦分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔⼦繁殖为例⼦⽽引⼊,故⼜称为“兔⼦数列”。
例⼦:1、1、2、3、5、8、13、21、34、……
解法1:
100以内的斐波那契数列
x=1
y=1
print(x,end=" ")
print(y,end=" ")
while(True):
z=x+y
x=y
y=z
if(z>100): #当z>100的时候,终⽌循环
break
print(z,end=" ")servlet的生命周期分别为
解法2:
python数据分析基础教程答案递归的办法,这个需要数学公式的记忆了
在数学上,斐波纳契数列以如下被以递归的⽅法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
#递归
def fibo(n):
if n <= 1:
return n
else:
return (fibo(n - 1) + fibo(n - 2))
m = int(input("打印前多少项?"))
if m <= 0:
print("请输⼊正整数!")
else:
print("fibo:")
for i in range(1,m):
print(fibo(i))
解法3:
迭代,⽤递归当数据⼤的时候,会出现效率问题
def fibo(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1 # 退出标识
for n in fibo(5):
print (n)
经过试验,⽐迭代速度快很多
time.clock()说明
cpu 的运⾏机制:cpu是多任务的,例如在多进程的执⾏过程中,⼀段时间内会有对各进程被处理。⼀个进程从从开始到结束其实是在这期间的⼀些列时间⽚断上断断续续执⾏的。所以这就引出了程序执⾏的cpu时间(该程序单纯在cpu上运⾏所需时间)和墙上时钟wall time。
time.time()是统计的wall time(即墙上时钟),也就是系统时钟的时间戳(1970纪元后经过的浮点秒数)。所以两次调⽤的时间差即为系统经过的总时间。
time.clock()是统计cpu时间 的⼯具,这在统计某⼀程序或函数的执⾏速度最为合适。两次调⽤time.clock()函数的插值即为程序运⾏的cpu时间。
import time
sql对象名无效的解决方法def fibo(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
t1 = time.clock()
for n in fibo(100):
print (n)
t2 = time.clock()
print(t2-t1)
解法4:
使⽤列表查看⼀下速度
import time
def fibo(n):
result_list = []
a, b = 0, 1
while n > 0:
result_list.append(b)
a, b = b, a + b
n -= 1
return result_list
t1 = time.clock()
print(fibo(1000))
t2 = time.clock()
print(t2-t1)
3
列出⼏个python标准库
你先明确的是什么是Python标准库
Python标准库(standard library)。
标准库会随着Python解释器,⼀起安装在你的电脑中的。它是Python的⼀个组成部分。
公司源码php这些标准库是Python为你准备好的利器,可以让编程事半功倍。
1. os模块
2. re模块
3. pickle 模块
4. datetime模块
5. time模块
6. math模块
1.
4
下⾯Python代码的运⾏结果是?
这种题⽬,考察的是代码默读能⼒
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print(l)
f(2)
f(3,[3,2,1])
f(3)
f(2)
def f(2,l=[]):
for i in range(2): # i=0,1
l.append(i*i) # [0,1]
print(l)
f(3,[3,2,1])
def f(3,l=[3,2,1]):
for i in range(3): # i=0,1,2
l.append(i*i) # [3,2,1,0,1,4]
print(l)
f(3)
def f(3,l=[]):
for i in range(3): # i=0,1,2
l.append(i*i) # [0,1,4] 对吗?
print(l)
这个地⽅,你需要避免踩坑,⼀定要注意列表是可变的,如果单独的写没有任何问题,但是函数调⽤
的三⾏代码放在⼀起就有点意思了f(3,[3,2,1]) 将l进⾏了重新赋值。但是第三次调⽤函数使⽤的依旧是第⼀次的l,所以避免踩坑哦~~~~
f(3)运⾏的正确结果是[0,1,0,1,4]
5
Python实现列表去重的⽅法?
养玳瑁猫吉利简单直接的办法,集合⾥⾯的元素不可以重复
my_list = [1,1,2,2,3,3,5,6,7,88]
my_set = set(my_list)
my_list = [x for x in my_set]
my_list
循环判断去重
ids = [1,1,2,2,3,3,5,6,7,88]
news_ids = []
for id in ids:
if id not in news_ids:
news_ids.append(id)
print(news_ids)
字典的fromkeys⽅法实现
my_list=[1,1,2,2,3,3,5,6,7,88]
d = {}.fromkeys(my_list)
print(d.keys())
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论