python工程师笔试题(校招)

笔试须知:
1. 笔试题分为逻辑测试和专业技能测试,其中逻辑测试权重35%,专业技能测试权重65%,专业技能测试用于了解人员掌握知识的深度和广度;
2.请统一在答题纸上做答,请保持答题卡整洁干净;
3.答题时间不超过1小时,可提前交答题纸;
4.禁止公开发布该测试题内容,禁止将该测试题内容分享与第三者

 

 

 

一、逻辑测试:
1、大象是动物,动物有腿。因此大象有腿。
(A) 是 (B) 否


2、我的秘书还未到参加选民的年龄,我的秘书有着漂亮的头发。所以我的秘书是个未满18周岁的姑娘。
(A) 是 (B) 否


3、所有的A都有一只眼睛,B有一只眼睛。所以A和B是一样的。
(A) 是 (B) 否


4、土豆比西红柿便宜,我的钱不够买两斤土豆。所以,
(A)我的钱不够买一斤西红柿。
(B)我的钱可能够,也可能不够买一斤西红柿。


5、韦利是个和斯坦一样强的棒球击球手,斯坦是个比大多数人都要强的棒球击球手。所以,
(A)韦利应是这些选手中最出色的。
(B)斯坦应是这些选手中最出色的。
(C)韦利是个比大多数人都要强的棒球击球手。


6、水平高的音乐家演奏古典音乐,要成为水平高的音乐家就得练习演奏。所以演奏古典音乐比演奏爵士乐需要更多的练习时间。
(A) 是 (B) 否


7、如果你的孩子被宠坏了,打他屁股会使他发怒,如果他没有被宠坏,打他屁股会使你懊悔。所以,
(A)打他屁股要么使你懊悔,要么使他发怒。
(B)打他屁股也许对她没有什么好处。


8、正方形是有角的图形,这个图形没有角。所以,
(A)这个图形是个圆。
(B)无确切结论。
(C)这个图形不是正方形。


9、格林威尔在史密斯城的东北,纽约在史密斯城的东北。所以,
(A)纽约比史密斯城更靠近格林威尔。
(B)史密斯城在纽约的西南。
(C)纽约离史密斯城不远。


10、绿色深时,红色就浅;黄色浅时,蓝色就适中;但是要么绿色深,要么黄色浅。所以,
(A)蓝色适中。
(B)黄色和红色都浅。
(C)红色浅,或者蓝色适中。


11、如果你突然停车,那么跟在后面的一辆卡车将撞上你;如果你不这样做,你将撞到一个妇女。所以,
(A)行人不应在马路上行走。
(B)那辆卡车车速太快。
(C)你要么让后面那辆卡车撞上,要么撞到那个妇女。


12、我住在农场和城市之间,农场位于城市和机场之间。所以,
(A)农场到我住处比到机场要近。
(B)我住在农场和机场之间。
(C)我的住处到农场比到机场要近。


13、当B等于Y时,A等于Z;当A不等于Z时,E要么等于Y,要么等于Z。所以,
(A)当B等于Y时,E不等于Y也不等于Z。
(B)当A等于Z时,Y或者Z等于E。
(C)当B不等于Y时,E不等于Y也不等于Z。


14、当B大于等于C时,X小于C但C绝不会大于B。所以,
(A)X绝不会大于B。
(B)X绝不会小于B。
(C)X绝不会小于C。


15、只要X是红色,Y就一定是绿色;只要Y不是绿色,就一定是蓝色。但是,当X是红色时,Z绝不会是蓝色。所以,
(A)只要Z是蓝色,Y就可能是绿色。
(B)只要X不是红色,Z就不可能是蓝色。
(C)只要Y不是绿色,X就不可能是红色。


16、有时印第安人是阿拉斯加人,阿拉斯加人有时是律师。所以,
(A)有时印第安人不见得一定是阿拉斯加人或律师。
(B)印第安人不可能是阿拉斯加人或律师。

17、 一个正方体有6个面,每个面的颜色都不同,并且只能是红、黄、蓝、绿、黑、白6种颜色。如果满足:1.红的对面是黑色2.蓝色和白色相邻3.黄色和蓝色相邻
那么,下面结论错误的是:
A.红色与蓝色相邻
B.蓝色的对面是绿色
C.白色与黄色相邻
D.黑色与绿色相邻


18、50名运动员按顺序排成一排,教练下令:“单数运动员出列!”剩下的运动员重新排列编号,教练又下令:“单数运动员出列!”如此下去,最后只剩下一个人,他是几号运动员?如果教练喊:“双数运动员出列。”最后剩下的又是谁?


二、专业技能测试


一)、python基础
1.有用过with关键词吗?有哪些对象支持该关键词?它的好处是什么?自己编写的代码如何支持该关键词?


2.有用过yield关键词吗?什么时候应该使用该关键词?


3.请写出一段Python代码实现删除一个list里面的重复元素


4.以下代码是否可以通过断言检查?如果不行如何修正断言
class A(object):
def __init__(self, v):
self.v = v
some_list = list()
a = A('a')
some_list.append(a)
a = A('a')
if a not in some_list:
some_list.append(a)
assert len(some_list) == 1


5.以下的代码的输出将是什么?
def extendList(some_val, some_list=[]):
some_list.append(some_val)
return some_list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')
print(f"list1 = {list1}")
print(f"list2 = {list2}")
print(f"list3 = {list3}")


6.以下的代码的输出将是什么?
def multipliers():
return [lambda x : i * x for i in range(4)]
print(f"result ={[m(2) for m in multipliers()]}")


7.以下代码将输出什么?
some_list = ['a', 'b', 'c', 'd', 'e']
print(f'list = {list[10:]}')


8.以下的代码的输出将是什么?
class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print(f'{Parent.x},{Child1.x},{Child2.x}')
Child1.x = 2
print(f'{Parent.x},{Child1.x},{Child2.x}')
Parent.x = 3
print(f'{Parent.x},{Child1.x},{Child2.x}')


二)、程序编写


1、题目:斐波那契
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、…… 其规律为:前两个数字为1,从第三个数字开始为前两个数字的和。例如第6个数字为8,是因为第4个数字为3,第5个数字为5,其和为8。
你的任务是编写程序输出指定序号的数字,序列从0开始。
> 输入输出格式
> 输入格式:
> 一个数字,表示数列中的序号。

> 输出格式:
> 一个数字,表示数列中的数值。
输入输出样例
```
输入样例#1:                  输出样例#1: 
3                            3

输入样例#2:                  输出样例#2:  
7                            21
```
1.1请使用递归算法编写

1.2请使用非递归算法编写
 

1题 | 被引用0次

模板修改
使用此模板创建