python基礎(chǔ)練習(xí)題及答案_第1頁
python基礎(chǔ)練習(xí)題及答案_第2頁
python基礎(chǔ)練習(xí)題及答案_第3頁
python基礎(chǔ)練習(xí)題及答案_第4頁
python基礎(chǔ)練習(xí)題及答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

python基礎(chǔ)練習(xí)測試題

1、列表和元組之間的區(qū)別是?

答:二者的主要區(qū)別是列表是可變的,而元組是不可變的。舉個

例子,如下所示:

?>mylist=[l,3,3]

>?mylist[1]=2

?>mytuple=(1,3,3)

>>>mytuple[l]=2

Traceback(mostrecentcalllast):

File"<pyshell#97>",line1,in<module>

mytuple[l]=2

會出現(xiàn)以下報錯:

TypeError:'tuple'objectdoesnotsupportitem

assignment

關(guān)于列表和元組的更多內(nèi)容,可以查看這里:

從Q4到Q20都是針對新手的Python面試基礎(chǔ)試題,不過有經(jīng)驗

的人也可以看看這些問題,復(fù)習(xí)一下基礎(chǔ)概念。

2、解釋一下Python中的三元運算子?

答:不像C++,我們在Python中沒有?:,但我們有這個:

[ontrue]if[expression]else[onfalse]

如果表達(dá)式為True,就執(zhí)行[ontrue]中的語句。否則,就執(zhí)行

[onfalse]中的語句。

下面是使用它的方法:

?>a,b=2,3

>>>min=aifa<belseb

?>min

運行結(jié)果:2

>>>print("Hi")ifa<belseprint("Bye")

運行結(jié)果:Hi

3、在Python中如何實現(xiàn)多線程?

答:一個線程就是一個輕量級進(jìn)程,多線程能讓我們一次執(zhí)行多

個線程。我們都知道,Python是多線程語言,其內(nèi)置有多線程工具

包。

Python中的GIL(全局解釋器鎖)確保一次執(zhí)行單個線程。一個

線程保存GIL并在將其傳遞給下個線程之前執(zhí)行一些操作,這會讓我

們產(chǎn)生并行運行的錯覺。但實際上,只是線程在CPU上輪流運行。當(dāng)

然,所有的傳遞會增加程序執(zhí)行的內(nèi)存壓力。

4、解釋一下Python中的繼承?

答:當(dāng)一個類繼承自另一個類,它就被稱為一個子類/派生類,

繼承自父類/基類/超類。它會繼承/獲取所有類成員(屬性和方法)。

繼承能讓我們重新使用代碼,也能更容易的創(chuàng)建和維護應(yīng)用。

Python支持如下種類的繼承:

單繼承:一個類繼承自單個基類

多繼承:一個類繼承自多個基類

多級繼承:一個類繼承自單個基類,后者則繼承自另一個基類

分層繼承:多個類繼承自單個基類

混合繼承:兩種或多種類型繼承的混合

5、什么是Flask?

答:Flask是Python編寫的一款輕量級Web應(yīng)用框架。其WSGI

工具箱采用Werkzeug,模板引擎則使用Jinja2°Flask使用BSD授

權(quán)。其中兩個環(huán)境依賴是Werkzeug和jinja2,這意味著它不需要依

賴外部庫。正因如此,我們將其稱為輕量級框架。

Flask會話使用簽名cookie讓用戶查看和修改會話內(nèi)容。它會

記錄從一個請求到另一個請求的信息。不過,要想修改會話,用戶必

須有密鑰Flask.secret_keyo

6、在Python中是如何管理內(nèi)存的?

答:Python有一個私有堆空間來保存所有的對象和數(shù)據(jù)結(jié)構(gòu)。

作為開發(fā)者,我們無法訪問它,是解釋器在管理它。但是有了核心

API后,我們可以訪問一些工具。Python內(nèi)存管理器控制內(nèi)存分配。

另外,內(nèi)置垃圾回收器會回收使用所有的未使用內(nèi)存,所以使其

適用于堆空間。

7、解釋Python中的help。和dir()函數(shù)

答:Help。函數(shù)是一個內(nèi)置函數(shù),用于查看函數(shù)或模塊用途的詳

細(xì)說明:

>>>importcopy

>>>help(copy,copy)

運行結(jié)果為:

Helponfunctioncopyinmodulecopy:

copy(x)

ShallowcopyoperationonarbitraryPythonobjects.

Seethemodule's_doc_stringformoreinfo.

Dir()函數(shù)也是Python內(nèi)置函數(shù),dir()函數(shù)不帶參數(shù)時,返回

當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時,返回參數(shù)的

屬性、方法列表。

以下實例展示了dir的使用方法:

>>>dir(copy,copy)

運行結(jié)果為:

['_annotations—','_call—','_class_',

'—closure—','_code—','—defaults—','_delattr—',

’_diet_','-dir—','_doc—','_eq_','_format—',

'—ge—','_get_','_getattribute—','_globals—',

gt—','_hash—','—init—','_init_subclass_

kwdefaults—','—le—','—It—','_module_

name—','—ne…','_new—','_qualname_

reduce—','_reduce_ex_','_repr—','_setattr

sizeof—','_str—','_subclasshook—']

8、當(dāng)退出Python時,是否釋放全部內(nèi)存?

答:結(jié)果是Noo循環(huán)引用其它對象或引用自全局命名空間的對

象的模塊,在Python退出時并非完全釋放。

另外,也不會釋放C庫保留的內(nèi)存部分。

9、什么是猴子補?。?/p>

答:在運行期間動態(tài)修改一個類或模塊。

>>>classA:

deffunc(self):

print("Hi")

>>>defmonkey(self):

print"Hi,monkey"

>>>m.A.func=monkey

?>a=m.A()

>>>a.func()

運行結(jié)果為:

Hi,Monkey

10、Python中的字典是什么?

答:字典是C++和Java等編程語言中所沒有的東西,它具有鍵

值對。

?>roots={25:5,16:4,9:3,4:2,1:1}

>>>type(roots)

<class'diet'>

>>>roots[9]

運行結(jié)果為:

3

字典是不可變的,我們也能用一個推導(dǎo)式來創(chuàng)建它。

>>>roots={x**2:xforxinrange(5,0,-1)}

>>>roots

運行結(jié)果:

{25:5,16:4,9:3,4:2,1:1)

11、請解釋使用args和*kwargs的含義

答:當(dāng)我們不知道向函數(shù)傳遞多少參數(shù)時,比如我們向傳遞一個

列表或元組,我們就使用*args。

>>>deffunc(*args):

foriinargs:

print(i)

?>func(3,2,l,4,7)

運行結(jié)果為:

3

2

1

4

7

在我們不知道該傳遞多少關(guān)鍵字參數(shù)時,使用**kwargs來收集

關(guān)鍵字參數(shù)。

>>>deffunc(**kwargs):

foriinkwargs:

print(i,kwargs[i])

?>func(a=l,b=2,c=7)

運行結(jié)果為:

a.1

b.2

c.7

12、請寫一個Python邏輯,計算一個文件中的大寫字母數(shù)量?

答:

>>>importos

>>>os.chdir('C:\\Users\\lifei\\Desktop')

>>>withopen('Today,txt')astoday:

count=0

foriintoday,read():

ifi.isupper():

count+=l

print(count)

運行結(jié)果:

26

13、什么是負(fù)索引?

答:我們先創(chuàng)建這樣一個列表:

?>mylist=[0,1,2,3,4,5,6,7,81

負(fù)索引和正索引不同,它是從右邊開始檢索。

>>>mylist[-3]

運行結(jié)果:

6

它也能用于列表中的切片:

>>>mylist[-6:-1]

結(jié)果:

[3,4,5,6,7]

14、如何以就地操作方式打亂一個列表的元素?

答:為了達(dá)到這個目的,我們從random模塊中導(dǎo)入shuffle。

函數(shù)。

>>>fromrandomimportshuffle

>>>shuffle(mylist)

>>>mylist

復(fù)制代碼

運行結(jié)果:

[3,4,8,0,5,7,6,2,1]

15、解釋Python中的join。和split。函數(shù)?

答:Join。能讓我們將指定字符添加至字符串中。

?>join('12345')

運行結(jié)果:

■,2,3,45

Split。能讓我們用指定字符分割字符串。

?>'l,2,3,4,5'.split(',')

運行結(jié)果:

['1','2','3','4','5']

16、Python區(qū)分大小寫嗎?

答:如果能區(qū)分像myname和Myname這樣的標(biāo)識符,那么它就是

區(qū)分大小寫的。也就是說它很在乎大

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論