我的python面试遇到的笔试题和惨痛经历。。。

系统 1817 0

我的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框架整体架构
我的python面试遇到的笔试题和惨痛经历。。。_第1张图片
scrapy运行流程如下:
1.引擎从调度器中取出一个URL用于接下来的抓取
2.引擎把URL封装成一个Request传给下载器
3.下载器把资源下载,并封装成Response
4.爬虫解析Response
5.解析出实体Item,则交给实体管道Pipeline进行下一步处理
6.解析出的URl交给调度器等待下一步抓取

关于python的笔试题还有很多很多,此处只列举了在我的面试里遇到次数多的题,希望大家还是要多多经历,刚开始的困难不算困难,加油。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论