我的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的筆試題還有很多很多,此處只列舉了在我的面試里遇到次數多的題,希望大家還是要多多經歷,剛開始的困難不算困難,加油。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
