我的python學(xué)習(xí)19/9/6
- 我的python面試遇到的筆試題和慘痛經(jīng)歷
- 我的面試經(jīng)歷
- 面試題
我的python面試遇到的筆試題和慘痛經(jīng)歷
決定把這幾次尋找python實(shí)習(xí)時(shí)遇到的筆試和經(jīng)歷寫出來(lái),個(gè)人覺(jué)得賊有意思
我的面試經(jīng)歷
就把兩次最印象深刻的面試經(jīng)歷說(shuō)出來(lái)吧。
1:我們這二十號(hào)人,兩個(gè)老板是北大博士,所有員工要么就是海歸名校,要么就是北大清華,你這是啥學(xué)校?
當(dāng)我聽(tīng)到這句話的時(shí)候瞬間無(wú)話可說(shuō)了,不是因?yàn)槲矣憛捤麄兊淖源螅谴_實(shí)認(rèn)識(shí)到了在這種情況的無(wú)力感,也決定了之后我一定要努力學(xué)習(xí)python用技術(shù)彌補(bǔ)學(xué)歷不足的情況,嚶嚶嚶。
2:加拿大公司,分部北京,坐標(biāo)中關(guān)村方舟大廈(好像是這個(gè)名字)
一進(jìn)大樓就再看不見(jiàn)一個(gè)漢字了,安保巨嚴(yán)就感覺(jué)在研究航空母艦一樣,進(jìn)大門,上樓,進(jìn)每一個(gè)部門都需要刷門禁(我感覺(jué)應(yīng)該是存在分級(jí)的,級(jí)別不夠進(jìn)不去哪里的亞子),然后進(jìn)到一個(gè)部門,看到那里的電腦都是密密麻麻的英文數(shù)據(jù)。然后招呼我在一個(gè)玻璃房坐著,進(jìn)來(lái)兩個(gè)看著就和藹可親的HR,一看就是專業(yè)中的專業(yè),長(zhǎng)相都是那種專業(yè)的,拿出一張全英文題紙讓我做,然后是要求全英文自我介紹,瞬間讓我明白了我的英語(yǔ)六級(jí)就是個(gè)屁啊。。。六道題三道看不懂,一道半懂,只有兩道是很確定的那種,更不要說(shuō)英語(yǔ)自我介紹了,我的口語(yǔ)也不是那種chinglish、磕磕絆絆的那種,還是有一定基礎(chǔ)的,但是說(shuō)實(shí)話讓我用英語(yǔ)介紹我的項(xiàng)目經(jīng)歷,這個(gè)是真說(shuō)不出來(lái)啊哈哈哈,雖然現(xiàn)在還沒(méi)有告訴我結(jié)果如何,但是我也能猜出來(lái)了。。。
這兩次的面試經(jīng)歷真的是讓我懂了there is always a bigger picture,還是不能做井底之蛙覺(jué)得自己在身邊人優(yōu)秀就滿足了
面試題
雖然經(jīng)歷聽(tīng)起來(lái)很吊,但我畢竟還是去實(shí)習(xí)的,被問(wèn)到的問(wèn)題也不難(當(dāng)時(shí)那個(gè)環(huán)境還沒(méi)答好),有一些還是多次遇到的問(wèn)題
問(wèn)題1:可變與不可變對(duì)象
就好像一張卷子的第一題,白給題,答不上來(lái)可以直接從窗戶往下跳了
可變:dict、list
不可變:int、string、float、tuple
問(wèn)題2:正則表達(dá)式匹配郵箱
把格式寫好看了,該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'
)
具體怎么寫還是要根據(jù)人家的問(wèn)題,沒(méi)有特殊要求的話寫個(gè)簡(jiǎn)單的就ok
問(wèn)題3:輸入一系列數(shù)字然后按降序排列并輸出缺少的那個(gè)數(shù)
import
re
numbers
=
input
(
'請(qǐng)輸入numbers'
)
def
find_missing_one
(
numbers
)
:
new_numbers
=
re
.
split
(
r
'[\s\,]+'
,
numbers
)
#re
.
split更好用,可以識(shí)別多個(gè)空格多個(gè)任意你想?yún)^(qū)分的符號(hào)
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
)
#還可以等差數(shù)列求和,計(jì)算出該有的sum再減去輸入的sum就是缺少的那個(gè)數(shù),很奇妙的想法,就是在那個(gè)情況下一般想不到這里
問(wèn)題4:大文件讀取
對(duì)于read()讀取文件,如果不知道文件的大小而直接讀取會(huì)導(dǎo)致未知的內(nèi)存占用,最好的辦法是:
1:利用迭代器遍歷 for line in lines
2:設(shè)置一個(gè)block_size 然后用yeild循環(huán)讀取
問(wèn)題5:mysql語(yǔ)言的使用
Python的面試當(dāng)然被問(wèn)到的還有數(shù)據(jù)庫(kù)的使用,許多筆試題都會(huì)用最普遍的mysql來(lái)考察
Student(S#,Sname,Sage,Ssex)
course(C#,Cname,T#)
Sc(S#,C#,score)
Teacher(T#,Tname)
BTW: 帶井號(hào)的就意味著編號(hào),應(yīng)該沒(méi)有看不懂的
(1).查詢”001“課比”002“課成績(jī)高的同學(xué)
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).查詢平均成績(jī)大于60分的同學(xué)學(xué)號(hào)和平均成績(jī)
select
S
#
,
avg
(
score
)
from
Sc group by
S
# having
avg
(
score
)
>
60
;
(3).查詢所有學(xué)生的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī)
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.查詢姓”李“的老師的個(gè)數(shù)
select
count
(
distinct
(
Tname
)
)
from
Teacher where Tname like
'李%'
;
5.查詢沒(méi)有學(xué)過(guò)”葉平“老師課的同學(xué)的學(xué)號(hào)、姓名
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框架整體架構(gòu)
scrapy運(yùn)行流程如下:
1.引擎從調(diào)度器中取出一個(gè)URL用于接下來(lái)的抓取
2.引擎把URL封裝成一個(gè)Request傳給下載器
3.下載器把資源下載,并封裝成Response
4.爬蟲解析Response
5.解析出實(shí)體Item,則交給實(shí)體管道Pipeline進(jìn)行下一步處理
6.解析出的URl交給調(diào)度器等待下一步抓取
關(guān)于python的筆試題還有很多很多,此處只列舉了在我的面試?yán)镉龅酱螖?shù)多的題,希望大家還是要多多經(jīng)歷,剛開(kāi)始的困難不算困難,加油。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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