一些Python的面試題(一)

2021-10-06 10:53:14 字數 4051 閱讀 9213

1.列表和元組

列表(list):可變型別,建立後可以對錶內元素進行修改;列表表示的順序,通常是同一型別的物件,如

a = [1, 2, 3]
元組(tuple):不可變型別,一旦建立就不能進行更改;元組表示結構,可以用來儲存不同型別的元素,如

b = (1, "2", [3, 4], )
注意,雖然元組內不可改變,但是元組內列表可以改變,如

b = (1, "2", [3, 4], )

print(b)

print(id(b))

b[2][1]=7

b[3]["5"] = "six"

print("**********===")

print(b)

print(id(b))

執行**後結果

(1, '2', [3, 4], )

1742819838776

**********===

(1, '2', [3, 7], )

1742819838776

2.「is」和「==」區別

「is」用來檢查物件的標識(id),「==」用來檢查兩個物件是否相等。

a = [1, 2, 3]

b = a

c = [1, 2, 3]

print(a == b)

print(a == c)

print("="*10)

print(a is b)

print(a is c)

print("="*10)

print(id(a))

print(id(b))

print(id(c))

輸出結果為:

true

true

**********

true

false

**********

1391052375368

1391052375368

1391052335496

3.range函式

range函式可以用來建立乙個整數列表,有三種用法

# range 函式的第一種用法

a = [i for i in range(10)]

print(a)

print("="*30)

# range 函式的第二種用法

b = [i for i in range(0,10)]

print(b)

print("="*30)

# range 函式的第三種用法

c = [i for i in range(0,10,2)]

print(c)

輸出結果為

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

******************************

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

******************************

[0, 2, 4, 6, 8]

4.python中連線列表

a = [1, 2, 3]

b = [4, 5]

c = a + b

print(c)

輸出結果:

[1, 2, 3, 4, 5]
5.字串插值

name  = "xiaoming"

# 1.

print("hello %s" %name)

print("="*20)

# 2.

print("my name is {}".format(name))

print("="*20)

# 3.只能在3.6之後的版本中執行

print(f"hello ")

輸出結果為:

hello xiaoming

********************

my name is xiaoming

********************

hello xiaoming

6.使用reverse函式反轉乙個列表

alist = [i for i in range(10)]

print(alist)

print("="*30)

alist.reverse()

print(alist)

輸出結果為:

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

******************************

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

reverse的另一種用法,在sort()函式中使用。

li = [7,2,5,4,1]

li.sort(reverse=true)

print(li)

輸出結果為:

[7, 5, 4, 2, 1]
7.字串乘法與列表乘法

a = "world"

print(a*3)

print("="*20)

b = [1, 2, 3]

print(b*3)

輸出結果為:

worldworldworld

********************

[1, 2, 3, 1, 2, 3, 1, 2, 3]

8.賦值,淺拷貝與深拷貝

直接賦值操作:a怎麼變,b就怎麼變(結婚了,組成乙個家庭?)

淺拷貝:m內可變元素改變,n內可變元素隨之改變,但是n不隨m而改變(離婚了但是有孩子?)

深拷貝:隨便x怎麼改變,y也不改變,x和y沒有關係(離婚了沒孩子,各過各的?)。

import copy

# 直接賦值

a = [1, 2, [3, 4, 5]]

b = a

a[2][0] = 9

print(b)

print("="*20)

# 淺拷貝

m = [1, 2, [3, 4, 5]]

n = m.copy()

m[2][0] = 9

print(n)

print("="*20)

# 深拷貝

x = [1, 2, [3, 4, 5]]

y = copy.deepcopy(x)

x[2][0] = 9

print(y)

輸出結果為:

[1, 2, [9, 4, 5], 6]

********************

[1, 2, [9, 4, 5]]

********************

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

9.func和func()

def func():

print("hello world!")

print(func)

print("="*20)

func()

輸出結果為:

********************

hello world!

func是表示物件的函式,它可以被分配給變數或傳遞給另乙個函式。

func()是直接呼叫該函式並返回其輸出值。

Python 一些面試題

1.寫出以下結果 print 1 2 and 2 2 print 1 2 and 2 1 print 1 2 and 2 2 結果 true false false 解 18.xrange和range的區別?答案 這個題的環境應該放在python2.x中,因為python3中將xrange和rang...

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...

一些面試題

1.如何檢視埠8080的程序 netstat anp grep 8080 lsof i 8080 2.在 tmp目錄下建立test.txt檔案,內容為 hello,world 用乙個命令寫出來。echo hello,world tmp test.txt 3.敘述下列服務的預設埠號。ftp 20,21...