python面試代碼題_python面試基礎篇80題

1.為什么學習python?

1354843-20181003205121560-366216330.png

3.Python和Java、PHP、C、C#、C++等其他語言的對比?

C語言由于其底層操作特性和歷史的積累,在嵌入式領域是當之無愧的王者。

PHP跨平臺,性能優越,跟linux/unix結合比跟windows結合性能強45%,開發成本低,php5已經有

成熟的面向對象體系,適合開發大型項目淘寶網,Yahoo,163,sina等等大型門戶,很多選用

PHP來作為他們的開發語言。

JAVA的優點:1.簡單性 2.面向對象性(面向對象的程度可以達到95%)3.健壯性4.跨平臺性

5.高性能(自動垃圾回收機制) 6.多線程 7.動態性 8.安全性

========================================================================

4.簡述解釋型和編譯型編程語言

1354843-20181003205432483-1527411591.png

5.python解釋器種類及其特點

cpython:這個解釋器是用C語言開發的,所以叫cpython,在命名行下運行python,就是啟動cpython

解釋器,cpython是使用最廣的python解釋器。

jython:jython是運行在java平臺上的python解釋器,可以直接把python代碼編譯成java字節碼執行。

Ipython:Ipython是基于cpython智商的一個交互式解釋器,也就是說,Ipython只是在交互方式上

有所增強,但是執行python代碼的功能和cpython是完全一樣的,好比很多國產瀏覽器雖然外觀

不同,但內核其實調用了IE。

6.位和字節的關系

1354843-20181004122444692-1788627174.png

7.b、B、KB、MB、GB 的關系?

1354843-20181004122454033-1743192628.png

8.請至少列舉5個 PEP8 規范(越多越好)。

1354843-20181003210417195-1381242469.png

9.通過代碼實現如下轉換:

上課補充的代碼轉換

print(bin(3)) #十進制轉成二進制,0b11

print(oct(8)) #十進制轉成八進制,0o10

print(10) #10

print(hex(16)) #十進制轉成十六進制,0x10

二進制轉換成十進制:v = “0b1111011”

#先將其轉換為字符串,再使用int函數,指定進制轉換為十進制。

print(int("0b1111011",2))

#值為123

十進制轉換成二進制:v = 18

print("轉換為二進制為:", bin(18))

#轉換為二進制為: 0b10010

八進制轉換成十進制:v = “011”

print(int("011",8))

十進制轉換成八進制:v = 30

print("轉換為八進制為:", oct(30))

#轉換為八進制為: 0o36

十六進制轉換成十進制:v = “0x12”

print(int("0x12",16))

#18

十進制轉換成十六進制:v = 87

print("轉換為十六進制為:", hex(87))

轉換為十六進制為: 0x57

10.請編寫一個函數實現將IP地址轉換成一個整數。

如 10.3.9.12 轉換規則為:

10 00001010

3 00000011

9 00001001

12 00001100

再將以上二進制拼接起來計算十進制結果:00001010 00000011 00001001 00001100 = ?

11.python遞歸的最大層數?

1354843-20181003210029762-1728050027.png

12.求結果:

v1 = 1 or 3

v2 = 1 and 3

v3 = 0 and 2 and 1?v4 = 0 and 2 or 1v5 = 0 and 2 or 1 or 4?v6 = 0 or Flase and 1

這題不會

13.ascii、unicode、utf-8、gbk 區別?

1354843-20181003210843709-1267799954.png

1354843-20181003210904572-1294312495.png

14.字節碼和機器碼的區別?

字節碼

字節碼是一種中間碼

字節碼通常指的是已經經過編譯,但與特定機器碼無關,需要直譯器轉譯后才能成為機器碼的中間代碼。字節碼通常不像源碼一樣可以讓人閱讀,而是編碼后的數值常量、引用、指令等構成的序列。

字節碼主要為了實現特定軟件運行和軟件環境、硬件環境無關。字節碼的實現方式是通過編譯器和虛擬機器。編譯器將源碼編譯成字節碼,特定平臺上的虛擬機器將字節碼轉譯為可以直接執行的指令。字節碼的典型應用為Java語言。

總結:字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯后才能成為機器碼。

15.三元運算規則以及應用場景?

1354843-20181004094716262-1691452279.png

16.列舉 Python2和Python3的區別?

pass

17.用一行代碼實現數值交換:

a = 1

b = 2

a,b=b,a

print(a,b) #a=2,b=1

18.Python3和Python2中 int 和 long的區別?

long整數類型唄python3廢棄,統一使用int

19.xrange和range的區別?

20.文件操作時:xreadlines和readlines的區別?

二者使用時相同,但返回類型不同,xreadlines返回的是一個生成器,readlines返回的是list

21.列舉布爾值為False的常見值?

0 空 none

22.字符串、列表、元組、字典每個常用的5個方法?

1354843-20181004095124561-1088394634.png

23.lambda表達式格式以及應用場景?

1354843-20181004095317040-229167258.png

24.pass的作用?

1354843-20181004095610508-666307887.png

25.*arg和**kwarg作用

1354843-20181004095710480-1071378682.png

26.is和==的區別

is對比的是值,==對比的是內存地址

未完待續

27.簡述Python的深淺拷貝以及應用場景?

待整理

28.python垃圾回收機制

1354843-20181004100732188-518055138.png

29.Python的可變類型和不可變類型?

python的每個對象分為可變和不可變

可變:列表,字典

不可變:數字,字符串,元祖

對不可變類型的變量重新賦值,實際上是重新創建一個不可變類型的對象,并將原來的變量重新指向新創

建的對象(如果沒有其他變量引用原有對象的話(即引用計數為0),原有對象就會被回收)。

不可變類型

30.求結果

未完待續

31.

未完待續

32.列舉常見的內置函數

33.filter、map、reduce的作用?

34.一行代碼實現9*9乘法表

35.如何安裝第三方模塊?以及用過哪些第三方模塊?

36.至少列舉8個常用模塊都有那些?

37.re的match和search區別?

1354843-20181004121001437-222119876.png

38.什么是正則的貪婪匹配?

39.求結果:? a. [ i % 2 for i in range(10) ]? b. ( i % 2 for i in range(10) )

40.求結果:? a. 1 or 2? b. 1 and 2? c. 1 < (2==2)? d. 1 < 2 == 2

41.def func(a,b=[]) 這種寫法有什么坑?

42.如何實現 “1,2,3” 變成 [‘1’,’2’,’3’] ?

1354843-20181004120851517-1067383699.png

43.如何實現[‘1’,’2’,’3’]變成[1,2,3] ?

1354843-20181004120901575-761363455.png

44.比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的區別?

45.如何用一行代碼生成[1,4,9,16,25,36,49,64,81,100] ?

1354843-20181004120720272-2002732074.png

46.一行代碼實現刪除列表中重復的值 ?

1354843-20181004120737511-1856010212.png

47.如何在函數中設置一個全局變量 ?

48.logging模塊的作用?以及應用場景?

通過log的分析,可以方便用戶了解系統或軟件、應用的運行情況;如果你的應用log足夠豐富,

也可以分析以往用戶的操作行為、類型喜好、地域分布或其他更多信息;如果一個應用的log同

時也分了多個級別,那么可以很輕易地分析得到該應用的健康狀況,及時發現問題并快速定位、

解決問題,補救損失。簡單來講就是,我們通過記錄和分析日志可以了解一個系統或軟件程序

運行情況是否正常,也可以在應用程序出現故障時快速定位問題。比如,做運維的同學,在接

收到報警或各種問題反饋后,進行問題排查時通常都會先去看各種日志,大部分問題都可以在

日志中找到答案。再比如,做開發的同學,可以通過IDE控制臺上輸出的各種日志進行程序調

試。對于運維老司機或者有經驗的開發人員,可以快速的通過日志定位到問題的根源。可見,

日志的重要性不可小覷。日志的作用可以簡單總結為以下3點:

程序調試

了解軟件程序運行情況,是否正常

軟件程序運行故障分析與問題定位

如果應用的日志信息足夠詳細和豐富,還可以用來做用戶行為分析,如:分析用戶的操作行為、

類型洗好、地域分布以及其它更多的信息,由此可以實現改進業務、提高商業利益。

logging模塊默認定義了以下幾個日志等級,它允許開發人員自定義其他日志級別,但是這是不

被推薦的,尤其是在開發供別人使用的庫時,因為這會導致日志級別的混亂。

1354843-20181006062658735-636895996.png

開發應用程序或部署開發環境時,可以使用DEBUG或INFO級別的日志獲取盡可能詳細的日志信息來進行開發或部署調試;

應用上線或部署生產環境時,應該使用WARNING或ERROR或CRITICAL級別的日志來降低機器的I/O壓力和提高獲取錯誤

日志信息的效率。日志級別的指定通常都是在應用程序的配置文件中進行指定的。

1354843-20181006062757660-2026825447.png

49.請用代碼簡答實現stack 。

50.常用字符串格式化哪幾種?

51.簡述 生成器、迭代器、可迭代對象 以及應用場景?

52.用Python實現一個二分查找的函數。

nums=[1,3,7,11,22,34,55,78,111,115,137,149,246,371]

def search(search_num,nums):

print(nums)

if len(nums) == 0:

print('not exists')

return

mid_index=len(nums) // 2

if search_num > nums[mid_index]:

# in the right

nums=nums[mid_index+1:]

search(search_num,nums)

elif search_num < nums[mid_index]:

# in the left

nums=nums[:mid_index]

search(search_num,nums)

else:

print('find it')

search(31,nums)

53.談談你對閉包的理解?

54.os和sys模塊的作用?

1354843-20181004120204404-1518289498.png

55.如何生成一個隨機數?

1354843-20181004120214255-2085586000.png

56.如何使用python刪除一個文件?

1354843-20181004120224726-2063812532.png

57.談談你對面向對象的理解?

58.Python面向對象中的繼承有什么特點?

59.面向對象深度優先和廣度優先是什么?

60.面向對象中super的作用?

1354843-20181004121203528-456437132.png

61.是否使用過functools中的函數?其作用是什么?

62.列舉面向對象中帶爽下劃線的特殊方法,如:__new__、__init__

63.如何判斷是函數還是方法?

函數:函數是封裝了一些獨立的功能,可以直接調用,python內置了許多函數,同時可以自建函數

來使用。

方法:方法和函數類似,同樣封裝了獨立的功能,但是方法是需要通過對象來調用的,表示針對

這個對象要做的操作,使用時采用點方法。

64.靜態方法和類方法區別?

1354843-20181004121303495-444097685.png

65.列舉面向對象中的特殊成員以及應用場景

1354843-20181004121422436-633887991.png

66.1、2、3、4、5 能組成多少個互不相同且無重復的三位數

67.什么是反射?以及應用場景?

1354843-20181004121500207-832230453.png

68.metaclass作用?以及應用場景?

69用盡量多的方法實現單例模式。

70.裝飾器的寫法以及應用場景。

裝飾器的寫法待補充

1354843-20181004121647050-1735044548.png

71.異常處理寫法以及如何主動跑出異常(應用場景)

72.什么是面向對象的mro

73.isinstance作用以及應用場景?

74.寫代碼并實現:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would

have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1]

75.json序列化時,可以處理的數據類型有哪些?如何定制支持datetime類型?

76.json序列化時,默認遇到中文會轉換成unicode,如果想要保留中文怎么辦?

不理解

1354843-20181004122151576-1118019120.png

77.什么是斷言?應用場景?

78.有用過with statement嗎?它的好處是什么?

79.使用代碼實現查看列舉目錄下的所有文件。

80.簡述 yield和yield from關鍵字。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457920.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457920.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

主設備號與次設備號以及申請

一個字符設備或者塊設備都有一個主設備號和次設備號。主設備號和次設備號統稱為設備號。主設備號用來表示一個特定的驅動程序。次設備號用來表示使用該驅動程序的各設備。例如一個嵌入式系統&#xff0c;有兩個LED指示燈&#xff0c;LED燈需要獨立的打開或者關閉。那么&#xf…

javascript 變量作用域

為什么80%的碼農都做不了架構師&#xff1f;>>> javascript中的變量的作用域不同于java/c的變量規則。 1、在java/c中&#xff0c;如果有一個全局變量與一個局部變量重名&#xff0c;那么在局部變量的作用域中&#xff0c;局部變量會覆蓋掉全局變量的值。當離開局部…

七月算法--12月機器學習在線班-第五次課筆記—回歸

七月算法--12月機器學習在線班-第五次課筆記—回歸 七月算法&#xff08;julyedu.com&#xff09;12月機器學習在線班學習筆記 http://www.julyedu.com 轉載于:https://www.cnblogs.com/sweet-dew/p/5491271.html

集合添加元素python_Python基礎:列表、字典、元組、集合、添加和刪除元素,增刪...

列表&#xff08;有序&#xff09; 添加 list.append(元素)&#xff1a;在列表末尾添加新的元素 list.extend(seq)&#xff1a;在列表末尾一次性追加另一個序列中的多個值 –seq可以是列表、元組、字典&#xff0c;若為字典,則僅會將鍵(key)作為元素依次添加至原列表的末尾。 l…

file_operations結構體分析 (設備文件的操作)

linux設備驅動中file_operations結構體分析 struct module *owner第一個 file_operations 成員根本不是一個操作; 它是一個指向擁有這個結構的模塊的指針. 這個成員用來在它的操作還在被使用時阻止模塊被卸載. 幾乎所有時間中, 它被簡單初始化為 THIS_MODULE, 一個在 <Linux…

公司網絡搭建及×××到公司配置

一、公司路由器及子網配置公司192.168.1.0/24子網用于服務器集群&#xff0c;192.168.0.0/24子網用于辦公子網&#xff0c;兩個子網物理上不在一塊。公司開業時&#xff0c;申請了電信40Mbps專線光纖&#xff0c;5個IP地址&#xff0c;網關&#xff1a;*.168.112.9 255.255.25…

js——全選框 checkbox

一直會碰見input 全選框的問題&#xff0c;先整理一種情況&#xff1a; 1. <input id"selectAll" type"checkbox" />全選 2. <input typecheckbox idid1 namecb value1 />value1 <input typecheckbox idid2 namecb value2 />value2 &…

手機編寫python程序_Python實現自動上京東搶手機

本文實例為大家分享了Python自動上京東搶手機的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下 上次搶榮耀V9&#xff0c;被京東給惡心到了&#xff0c;所以就寫了個簡單的Python來自動搶V9。雖然用的是比較蠢的方法&#xff0c;但覺得還是有可以學習的地方。所以在這…

struct cdev結構體和cdev_init和cdev_add函數

在Linux內核2.6版本以前&#xff0c;注冊一個字符設備的的經典方法是使用register_chrdev&#xff0c;相應的從設備中注銷字符設備的方法是unregister_chrdev&#xff0c;而在2.6版本以后&#xff0c;字符設備函數的注冊與注銷使用的是如下一套方法&#xff1a; #include<li…

藍鷗零基礎學習HTML5第五講 CSS的基礎樣式

藍鷗零基礎學習HTML5第五講 CSS的基礎樣式1.border<!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Document</title><style>div {width:0px;height:0px;/*background: url("img/1.jpg…

class_create()函數

內核中定義了struct class結構體&#xff0c;一個struct class 結構體類型變量對應一個類&#xff0c;內核同時提供了class_create()函數&#xff0c;可以用它來創建一個類&#xff0c;這個類存放于sysfs下面&#xff0c;一旦創建了這個類&#xff0c;再調用device_create()函數…

C# 使用Conditional特性而不是#if條件編譯

概述 #if/#endif 語句常用來基于同一份源碼生成不同的編譯結果&#xff0c;其中最常見的就是debug版和release版。但是這些工具在實際應用中并不是非常友好&#xff0c;因為它們容易被濫用&#xff0c;其代碼頁進而難以理解或調試。C#設計中考慮到這個問題&#xff0c;并提供了…

python安裝opencv出現錯誤_Python3安裝OpenCV出錯,如何解決?

$ sudo pip install opencv-python $ sudo pip install opencv-contrib-python 參考下&#xff1a;python作業畢設&#xff1a;安裝人工智能圖像處理工具OpenCV?zhuanlan.zhihu.compython版本安裝 適合所有平臺&#xff1a; $ sudo pip install opencv-python $ sudo pip inst…

PHP中面向對象的圖片處理類

我們對圖片的處理主要是添加水印和等比縮放&#xff0c;在PHP中&#xff0c;封裝一個類來實現兩個功能。源代碼如下&#xff1a;<?php/***圖片處理*/ class Image {//路徑private $path ./upload/;//隨機文件名private $isRandName;//初始化成員方法public function __con…

ioread32函數有關知識

x86體系和ARM體系的尋址方式是有差別的&#xff1a; 在x86下&#xff0c;為了能夠滿足CPU高速地運行&#xff0c;內存與CPU之間通過北橋相連并通過地址方式訪問&#xff0c;而外設通過南橋與CPU相連并通過端口訪問。 在ARM下也實現了類似的操作&#xff0c;通過兩條不同的總線…

幾何分布的期望和方差公式推導_超幾何分布的數學期望與方差推導

考慮 個外表相同的物品&#xff0c;其中有 個同類物品與另一類的 個物品&#xff1b;抽取 個物品&#xff0c;每個物品的抽取等概率隨機。上述便是一個超幾何分布&#xff08;Hypergeometric Distribution&#xff09;的基本模型。抽取 個 類物品的概率 在研究超幾何分布的數學…

FPGA開發全攻略—— 調試

原文鏈接&#xff1a; FPGA開發全攻略連載之十三&#xff1a;FPGA實戰開發技巧&#xff08;12&#xff09; 5.6 大規模設計的調試經驗 在大規模設計的調試應該按照和設計理念相反的順序&#xff0c;從底層測試&#xff0c;主要依靠ChipScope Pro 工具。下面主要介紹ChipScope P…

003很好的網絡博客(TCP/IP)-很全

http://www.cnblogs.com/obama/p/3292335.html 很全的計算機網絡方面的資料。

linux驅動文件操作簡單介紹

1、設備號 主設備號標識設備對應的驅動程序&#xff0c;次設備號由內核使用&#xff0c;用于確定設備文件所指的設備。 通過次設備號獲得一個指向內核設備的直接指針&#xff0c;也可將此設備號當作設備本地數組的索引。 設備編號用dev_t表示&#xff08;Linux/types.h 32位…

php學習筆記細節部分。

<?phpclass Car{public function Car()//構造函數 {//codeing 當實例化類的時候會調用這里面的方法}public function _destruct()//析構函數 {//codeing 對象的所有引用被刪除&#xff0c;或者對象被顯式的銷毀時會執行的函數。 }} l轉載于:https://www.cnblogs.com/OnlyL…