久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

面試問(wèn)題整理之python測(cè)試

 一枚平凡的葉子 2019-07-02

本文搜集,、整理了python測(cè)試崗位面試常見(jiàn)問(wèn)題。


1.下列哪個(gè)語(yǔ)句在Python中是非法的,?

A、x = y = z =1 B,、x = (y = z 1)

C、x, y = y, x D,、x = y

答案:B


2.關(guān)于Python內(nèi)存管理,,下列說(shuō)法錯(cuò)誤的是

A、變量不必事先聲明 B,、變量無(wú)須先創(chuàng)建和賦值而直接使用

C,、變量無(wú)須指定類型 D,、可以使用del釋放資源

答案:B. (不先賦值會(huì)報(bào)錯(cuò),,is not defined)


3、下面哪個(gè)不是Python合法的標(biāo)識(shí)符

A,、int32 B,、40XL C、self D,、name

答案:B(合法的標(biāo)識(shí)符不能以數(shù)字開(kāi)頭)


4,、下列哪種說(shuō)法是錯(cuò)誤的

A、除字典類型外,,所有標(biāo)準(zhǔn)對(duì)象均可以用于布爾測(cè)試

B,、空字符串的布爾值是False

C、空列表對(duì)象的布爾值是False

D,、值為0的任何數(shù)字對(duì)象的布爾值是False

答案:D (a=0,0, bool(a)為True)


5,、下列表達(dá)式的值為True的是

A、5 4j >2-3j B,、3>2>2

C,、(3,2)<(‘a(chǎn)’,‘b’) D、’abc’ > ‘xyz’

答案:C (在Py2.x版本中正確,,在Py3.x運(yùn)行錯(cuò)誤)


6,、Python不支持的數(shù)據(jù)類型有

A、char B,、int C,、float D、list

答案:A(python里無(wú)char型數(shù)據(jù),,有string字符串類型;但C語(yǔ)言中有char數(shù)據(jù)類型)


7,、關(guān)于Python中的復(fù)數(shù),下列說(shuō)法錯(cuò)誤的是

A,、表示復(fù)數(shù)的語(yǔ)法是real imagej B,、實(shí)部和虛部都是浮點(diǎn)數(shù)

C,、虛部必須后綴j,且必須是小寫 D,、方法conjugate返回復(fù)數(shù)的共軛復(fù)數(shù)

答案:C(復(fù)數(shù)虛部的后綴也可以是大寫的J)


8,、關(guān)于字符串下列說(shuō)法錯(cuò)誤的是

A、字符應(yīng)該視為長(zhǎng)度為1的字符串

B,、字符串以\0標(biāo)志字符串的結(jié)束

C,、既可以用單引號(hào),也可以用雙引號(hào)創(chuàng)建字符串

D,、在三引號(hào)字符串中可以包含換行回車等特殊字符

答案:B(python因?yàn)樽址虚L(zhǎng)度限制,,到了長(zhǎng)度就標(biāo)志字符串的結(jié)束)


9、以下不能創(chuàng)建一個(gè)字典的語(yǔ)句是

A,、dict1 = {} B,、dict2 = { 3 : 5 }

C、dict3 ={[1,2,3]: “uestc”} D,、dict4 = {(1,2,3): “uestc”}

答案:C(字典的鍵必須是不變的,,而列表是可變的)


10、下列Python語(yǔ)句正確的是:

A,、min = x if x< y = y

B,、max = x > y ?x:y

C、if (x >y) print x

D,、while True :pass

答案:D


  1. python常見(jiàn)的命令行交互自動(dòng)化模塊有哪些,?

答案:a)Import module
b) Import module1,module2
c) From module import *
d) Frommodule import m1,m2,m3
e) From module import logger asmodule_logger


12.python的底層網(wǎng)絡(luò)交互模塊有哪些?

答案:socket, urllib,urllib3 , requests, grab, pycurl


13.python網(wǎng)絡(luò)交互時(shí),,二進(jìn)制打包解包的模塊有哪些

打包:pack(), 解包:upk()


14.python的測(cè)試框架有哪些,?試列出常用的3個(gè)或更多

答案:unittest, nose,unittest2, doctest, pytest


15.一行把[1,2,3,1,2,3] 中的重復(fù)元素剔除。

答案:list(set([1,2,3,1,2,3]))


16.現(xiàn)在要你使用pyDes(DES加密)和標(biāo)準(zhǔn)庫(kù)中的namedtuple,,假設(shè)你之前沒(méi)有接觸過(guò),,你如何快速上手?

答案:仔細(xì)閱讀官方文檔中namedtuple庫(kù)和pyDes的使用,。下載pyDes和namedtuple庫(kù),,借鑒網(wǎng)上的使用教程,摸索實(shí)踐,。


17.Python到底是什么樣的語(yǔ)言,?你可以比較其他技術(shù)或者語(yǔ)言來(lái)回答你的問(wèn)題。

這里是一些關(guān)鍵點(diǎn):Python是解釋型語(yǔ)言,。這意味著不像C和其他語(yǔ)言,,Python運(yùn)行前不需要編譯。其他解釋型語(yǔ)言包括PHP和Ruby,。
Python是動(dòng)態(tài)類型的,,這意味著你不需要在聲明變量時(shí)指定類型,。你可以先定義x=111,然后 x=”I’m a string”,,一點(diǎn)問(wèn)題也不會(huì)有,。
Python是面向?qū)ο笳Z(yǔ)言,所有允許定義類并且可以繼承和組合,。Python沒(méi)有訪問(wèn)訪問(wèn)標(biāo)識(shí)如在C 中的public, private, 這就非常信任程序員的素質(zhì),,相信每個(gè)程序員都是“成人”了~
在Python中,函數(shù)是一等公民,。這就意味著它們可以被賦值,,從其他函數(shù)返回值,并且傳遞函數(shù)對(duì)象,。類不是一等公民,。
寫Python代碼很快,但是跑起來(lái)會(huì)比編譯型語(yǔ)言慢,。幸運(yùn)的是,,Python允許使用C擴(kuò)展寫程序,,所以瓶頸可以得到處理,。Numpy庫(kù)就是一個(gè)很好例子,因?yàn)楹芏啻a不是Python直接寫的,,所以運(yùn)行很快,。
Python使用場(chǎng)景很多 – web應(yīng)用開(kāi)發(fā),自動(dòng)化,,科學(xué)建模,,大數(shù)據(jù)應(yīng)用,等等,。它也經(jīng)常被看做“膠水”語(yǔ)言,,使得不同語(yǔ)言間可以銜接上。
Python能夠簡(jiǎn)化工作 ,,使得程序員能夠關(guān)心如何重寫代碼而不是詳細(xì)看一遍底層實(shí)現(xiàn),。


18.Python和多線程,是不是個(gè)好主意,?列舉你覺(jué)得可以讓Python代碼并行運(yùn)行的方法,?

Python實(shí)際上不允許多線程。它有一個(gè)threading包但是如果你想加快代碼運(yùn)行速度,,或者想并行運(yùn)行,,這不是一個(gè)好主意。Python有一個(gè)機(jī)制叫全局解釋器鎖(GIL),。GIL保證每次只有一個(gè)線程在解釋器中跑,。一個(gè)線程獲得GIL,,之后再交給下一個(gè)線程。所以,,看起來(lái)是多個(gè)線程在同時(shí)跑,,但是實(shí)際上每個(gè)時(shí)刻只有CPU核在跑一個(gè)線程,沒(méi)有真正利用多個(gè)CPU核跑多個(gè)線程,。就是說(shuō),,多個(gè)線程在搶著跑一個(gè)CPU核。
但是還是有使用threading包的情況的,。比如你真的想跑一個(gè)可以線程間搶占的程序,,看起來(lái)是并行的?;蛘哂泻荛L(zhǎng)時(shí)間的IO等待線程,,這個(gè)包就會(huì)有用。但是threading包不會(huì)使用多核去跑代碼,。
真正的多核多線程可以通過(guò)多進(jìn)程,,一些外部庫(kù)如Spark和Hadoop,或者用Python代碼去調(diào)用C方法等等來(lái)實(shí)現(xiàn)


19.你怎么對(duì)你的代碼進(jìn)行跟蹤,,協(xié)同寫代碼,?

使用版本控制:git


20.下面這段代碼的輸出是什么

def f(x,l=[]): for i in range(x): l.append(i*i) print(l) f(2) f(3,[3,2,1]) f(3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]
因?yàn)镻ython內(nèi)存還是存了第一次殘留的l值,所以它以0和1開(kāi)頭,。


21.猴子補(bǔ)丁是什么,?它是不是一個(gè)好主意?

猴子補(bǔ)丁是在一個(gè)函數(shù)或者對(duì)象已經(jīng)存在的基礎(chǔ)上,,改變它的行為,。比如:

import datetime
datetime.datetime.now = lambda: datetime.datetime(2012, 12, 12)
  • 1
  • 2

大多數(shù)時(shí)候這不是一個(gè)好主意 – 如果早就設(shè)計(jì)好,不是更好,?一個(gè)可以使用猴子補(bǔ)丁的地方是做測(cè)試,,著名的包mock,就是一個(gè)很好的例子,。


22.*args, **kwargs是什么東西? 我們?yōu)槭裁磿?huì)用它,?

我們用 args 當(dāng)我們不知道要有多少個(gè)參數(shù)傳給函數(shù),或者我們想把一個(gè)列表或者tuple存起來(lái)以后傳給函數(shù),。我們用**kwargs當(dāng)我們不知道有多少個(gè)關(guān)鍵字參數(shù)要傳給函數(shù),,或者我們想把字典存起來(lái)以后傳給函數(shù)。args 和 kwargs的名字是以前遺留下來(lái)的,,你用bob 和**billy也沒(méi)關(guān)系但是這樣不太好,,嘿嘿。


23.@classmethod, @staticmethod, @property都是什么意思?

修飾器的概念要懂,。拿到一個(gè)函數(shù),,返回一個(gè)函數(shù),,或者拿到一個(gè)類,返回另一個(gè)類,。

@my_decorator def my_func(stuff): do_things
  • 1
  • 2
  • 3

以上代碼相當(dāng)于:

def my_func(stuff):
    do_things
my_func = my_decorator(my_func)
  • 1
  • 2
  • 3

你可以在這里找到修飾器的一般用法,。

@classmethod, @staticmethod 和 @property修飾器是使用在類中的。


24.簡(jiǎn)介地描述下Python的垃圾回收機(jī)制

這里可以說(shuō)許多東西,,有幾個(gè)重點(diǎn)你可以提到:
Python在內(nèi)存中維護(hù)對(duì)象的引用次數(shù),。如果一個(gè)對(duì)象的引用次數(shù)變?yōu)?,垃圾回收機(jī)制會(huì)回收這個(gè)對(duì)象作為他用,。
有時(shí)候會(huì)有“引用循環(huán)”的事情發(fā)生,。垃圾回收器定期檢查回收內(nèi)存。一個(gè)例子是,,如果你有兩個(gè)對(duì)象 o1 和 o2,,并且o1.x == o2 and o2.x == o1. 如果 o1 和 o2 都沒(méi)有被其他對(duì)象使用,那么它們都不應(yīng)該存在,。但是它們的應(yīng)用次數(shù)都是1,,垃圾回收不會(huì)起作用。
一些啟發(fā)算法可以用來(lái)加速垃圾回收,。比如,,最近創(chuàng)建的對(duì)象更可能是無(wú)用的。用創(chuàng)建時(shí)間來(lái)度量對(duì)象的生命時(shí)長(zhǎng),,生命越長(zhǎng),,越可能是更有用的對(duì)象。
CPython的說(shuō)明文檔中有相關(guān)解釋,。


25.python中有哪些基礎(chǔ)類型

有5個(gè)標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)類型:Numbers(數(shù)字) String(字符串) List(列表) Tuple(元組) Dictionary(字典)


26.python里面的深拷貝,淺拷貝

在Python中對(duì)象的賦值其實(shí)就是對(duì)象的引用,。當(dāng)創(chuàng)建一個(gè)對(duì)象,,把它賦值給另一個(gè)變量的時(shí)候,python并沒(méi)有拷貝這個(gè)對(duì)象,,只是拷貝了這個(gè)對(duì)象的引用而已,。
淺拷貝:拷貝了最外圍的對(duì)象本身,內(nèi)部的元素都只是拷貝了一個(gè)引用而已,。也就是,,把對(duì)象復(fù)制一遍,但是該對(duì)象中引用的其他對(duì)象我不復(fù)制
深拷貝:外圍和內(nèi)部元素都進(jìn)行了拷貝對(duì)象本身,,而不是引用,。也就是,把對(duì)象復(fù)制一遍,,并且該對(duì)象中引用的其他對(duì)象我也復(fù)制,。
1,,深淺拷貝都是對(duì)源對(duì)象的復(fù)制,占用不同的內(nèi)存空間,。
2,,不可變類型的對(duì)象,對(duì)于深淺拷貝毫無(wú)影響,,最終的地址值和值都是相等的,。
3,可變類型:
=淺拷貝: 值相等,,地址相等
copy淺拷貝:值相等,,地址不相等
deepcopy深拷貝:值相等,地址不相等


27.實(shí)現(xiàn)一個(gè)字典數(shù)據(jù)結(jié)果的深拷貝

copy淺拷貝
deepcopy深拷貝
from copy import deepcopy
深拷貝和淺拷貝的例子:

data = {'user':'admin','num':[1,2,3]} data2 = data.copy() data3 = deepcopy(data)
  • 1
  • 2
  • 3

查看結(jié)果

data['user']='root'
data['num'].remove(1)
print(data)
print(data2)
print(data3)
  • 1
  • 2
  • 3
  • 4
  • 5

輸出結(jié)果為:

{'user': 'root', 'num': [2, 3]} {'user': 'admin', 'num': [2, 3]} {'user': 'admin', 'num': [1, 2, 3]}
  • 1
  • 2
  • 3

總結(jié):
如果源拷貝對(duì)象只有一級(jí)目錄的話,,源做任何改動(dòng),,不影響深淺拷貝對(duì)象
如果源拷貝對(duì)象不止一級(jí)目錄的話,源對(duì)一級(jí)目錄的子目錄做任何改動(dòng),,都會(huì)影響淺拷貝,,但不影響深拷貝


28.循環(huán) 迭代 遍歷 遞歸

循環(huán) 指的是在滿足條件的情況下,重復(fù)執(zhí)行同一段代碼,。比如,,while語(yǔ)句。
[ 循環(huán)則技能對(duì)應(yīng)集合,,列表,,數(shù)組等,也能對(duì)執(zhí)行代碼進(jìn)行操作,?!                     ?br> 迭代(iterate),指的是按照某種順序逐個(gè)訪問(wèn)列表中的每一項(xiàng),。比如,,for語(yǔ)句。
[迭代只能對(duì)應(yīng)集合,,列表,,數(shù)組等。不能對(duì)執(zhí)行代碼進(jìn)行迭代,。]                
遍歷(traversal),,指的是按照一定的規(guī)則訪問(wèn)樹(shù)形結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn),而且每個(gè)節(jié)點(diǎn)都只訪問(wèn)一次,。
[遍歷同迭代一樣,,也不能對(duì)執(zhí)行代碼進(jìn)行遍歷。]
遞歸(recursion),指的是一個(gè)函數(shù)不斷調(diào)用自身的行為,。比如,,以編程方式輸出著名的斐波納契數(shù)列。
[線性遞歸和尾遞歸,。]


29.異常處理機(jī)制

捕捉異??梢允褂胻ry/except 語(yǔ)句。
try/except 語(yǔ)句用來(lái)檢測(cè)try語(yǔ)句塊中的錯(cuò)誤,,從而讓except 語(yǔ)句捕獲異常信息并處理,。
如果你不想在異常發(fā)生時(shí)結(jié)束你的程序,只需要try 捕獲里捕獲它,。
使用以下語(yǔ)法:
try …except …else 的語(yǔ)法
try:
<語(yǔ)句> #運(yùn)行別的代碼
except <名字>:
<語(yǔ)句> #如果在try部份引發(fā)了’name’異常
except <名字>,,<數(shù)據(jù)>:
<語(yǔ)句> #如果引發(fā)了’name’異常,獲得附加的數(shù)據(jù)
else:
<語(yǔ)句> #如果沒(méi)有異常發(fā)生
try的工作原理是,,當(dāng)開(kāi)始一個(gè)try語(yǔ)句后,,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時(shí)就可以回到這里,,try子句先執(zhí)行,,接下來(lái)會(huì)發(fā)生什么依賴于執(zhí)行時(shí)是否出現(xiàn)異常。
如果當(dāng)try后的語(yǔ)句執(zhí)行時(shí)發(fā)生異常,,python就跳回到try并執(zhí)行第一個(gè)匹配該異常的except子句,,異常處理完畢,控制流就通過(guò)整個(gè)try語(yǔ)句(除非在處理異常時(shí)又引發(fā)新的異常),。
如果在try后的語(yǔ)句里發(fā)生了異常,,卻沒(méi)有匹配的except子句,異常將被遞交到上層的try,,或者到程序的最上層(這樣將結(jié)束程序,,并打印缺省的出錯(cuò)信息)。
如果在try子句執(zhí)行時(shí)沒(méi)有發(fā)生異常,,python將執(zhí)行else語(yǔ)句后的語(yǔ)句(如果有else的話),,然后控制流通過(guò)整個(gè)try語(yǔ)句


30.class類中(self)指的是什么

self 指的是類本身。


31.range 函數(shù)的使用,,其中有那兩個(gè)參數(shù)

函數(shù)語(yǔ)法:
range(start, stop[,step])
參數(shù)說(shuō)明:
start: 計(jì)數(shù)從 start 開(kāi)始。默認(rèn)是從 0 開(kāi)始,。例如range(5)等價(jià)于range(0,, 5);
stop: 計(jì)數(shù)到 stop 結(jié)束,但不包括 stop,。例如:range(0,, 5) 是[0, 1, 2, 3, 4]沒(méi)有5
step:步長(zhǎng),默認(rèn)為1。例如:range(0,, 5) 等價(jià)于 range(0, 5, 1)


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多