我的python学习19/9/6
- 我的python面试遇到的笔试题和惨痛经历
- 我的面试经历
- 面试题
我的python面试遇到的笔试题和惨痛经历
决定把这几次寻找python实习时遇到的笔试和经历写出来,个人觉得贼有意思
我的面试经历
就把两次最印象深刻的面试经历说出来吧。
1:我们这二十号人,两个老板是北大博士,所有员工要么就是海归名校,要么就是北大清华,你这是啥学校?
当我听到这句话的时候瞬间无话可说了,不是因为我讨厌他们的自大,而是确实认识到了在这种情况的无力感,也决定了之后我一定要努力学习python用技术弥补学历不足的情况,嘤嘤嘤。
2:加拿大公司,分部北京,坐标中关村方舟大厦(好像是这个名字)
一进大楼就再看不见一个汉字了,安保巨严就感觉在研究航空母舰一样,进大门,上楼,进每一个部门都需要刷门禁(我感觉应该是存在分级的,级别不够进不去哪里的亚子),然后进到一个部门,看到那里的电脑都是密密麻麻的英文数据。然后招呼我在一个玻璃房坐着,进来两个看着就和蔼可亲的HR,一看就是专业中的专业,长相都是那种专业的,拿出一张全英文题纸让我做,然后是要求全英文自我介绍,瞬间让我明白了我的英语六级就是个屁啊。。。六道题三道看不懂,一道半懂,只有两道是很确定的那种,更不要说英语自我介绍了,我的口语也不是那种chinglish、磕磕绊绊的那种,还是有一定基础的,但是说实话让我用英语介绍我的项目经历,这个是真说不出来啊哈哈哈,虽然现在还没有告诉我结果如何,但是我也能猜出来了。。。
这两次的面试经历真的是让我懂了there is always a bigger picture,还是不能做井底之蛙觉得自己在身边人优秀就满足了
面试题
虽然经历听起来很吊,但我毕竟还是去实习的,被问到的问题也不难(当时那个环境还没答好),有一些还是多次遇到的问题
问题1:可变与不可变对象
就好像一张卷子的第一题,白给题,答不上来可以直接从窗户往下跳了
可变:dict、list
不可变:int、string、float、tuple
问题2:正则表达式匹配邮箱
把格式写好看了,该import的import,该if就if
import
re
def
is_valid_email
(
addr
)
if
re
.
match
(
r
'^[A-Za-z0-9]+(\.|[A-Za-z0-9]+)+@[A-Za-z0-9]+(\.[A-Za-z0-9]+)+$'
,
addr
)
:
return
True
assert
is_valid_emai
(
'sssss@ssss.com'
)
具体怎么写还是要根据人家的问题,没有特殊要求的话写个简单的就ok
问题3:输入一系列数字然后按降序排列并输出缺少的那个数
import
re
numbers
=
input
(
'请输入numbers'
)
def
find_missing_one
(
numbers
)
:
new_numbers
=
re
.
split
(
r
'[\s\,]+'
,
numbers
)
#re
.
split更好用,可以识别多个空格多个任意你想区分的符号
new_numbers
.
sort
(
reverse
=
True
)
#reverse决定你是降序排列还是升序
print
(
new_numbers
)
i
=
0
while
(
int
(
new_numbers
[
i
]
-
int
(
new_numbers
[
i
+
1
]
)
==
1
:
i
+=
1
else
:
print
(
int
(
new_numbers
[
i
]
)
-
1
)
find_missing_one
(
numbers
)
#还可以等差数列求和,计算出该有的sum再减去输入的sum就是缺少的那个数,很奇妙的想法,就是在那个情况下一般想不到这里
问题4:大文件读取
对于read()读取文件,如果不知道文件的大小而直接读取会导致未知的内存占用,最好的办法是:
1:利用迭代器遍历 for line in lines
2:设置一个block_size 然后用yeild循环读取
问题5:mysql语言的使用
Python的面试当然被问到的还有数据库的使用,许多笔试题都会用最普遍的mysql来考察
Student(S#,Sname,Sage,Ssex)
course(C#,Cname,T#)
Sc(S#,C#,score)
Teacher(T#,Tname)
BTW: 带井号的就意味着编号,应该没有看不懂的
(1).查询”001“课比”002“课成绩高的同学
select a
.
S
#
from
(
select
S
#
,
score
from
Sc where
C
#
=
"001"
)
a
,
(
select
S
#
,
score
from
Sc where
C
#
=
"002"
)
b
,
where a
.
score
>
b
.
score and a
.
S
#
=
b
.
S
#
;
(2).查询平均成绩大于60分的同学学号和平均成绩
select
S
#
,
avg
(
score
)
from
Sc group by
S
# having
avg
(
score
)
>
60
;
(3).查询所有学生的学号、姓名、选课数、总成绩
select Student
.
S
#
,
Student
.
Sname
,
count
(
Sc
.
C
#
)
,
sum
(
score
)
from
Student left outer join Sc on Student
.
S
#
=
Cs
.
S
# group by Student
.
S
#
,
Sname
;
4.查询姓”李“的老师的个数
select
count
(
distinct
(
Tname
)
)
from
Teacher where Tname like
'李%'
;
5.查询没有学过”叶平“老师课的同学的学号、姓名
select
S
#
,
Sname
from
Student where
S
# not
in
(
select
distince
(
Sc
.
S
#
)
from
Sc
,
course
,
Teacher
where Sc
.
C
#
=
course
.
C
# and Teacher
.
T
#
=
course
.
T
# and Teacher
.
Tname
=
"叶平"
)
;
6.scrapy框架整体架构
scrapy运行流程如下:
1.引擎从调度器中取出一个URL用于接下来的抓取
2.引擎把URL封装成一个Request传给下载器
3.下载器把资源下载,并封装成Response
4.爬虫解析Response
5.解析出实体Item,则交给实体管道Pipeline进行下一步处理
6.解析出的URl交给调度器等待下一步抓取
关于python的笔试题还有很多很多,此处只列举了在我的面试里遇到次数多的题,希望大家还是要多多经历,刚开始的困难不算困难,加油。