Python面試題解答 第二部分企業面試題

2021-10-06 10:44:57 字數 4601 閱讀 4863

企業面試題

a. 在python裡凡是繼承了object的類,都是新式類

b. python3裡只有新式類

c. python2裡面繼承object的是新式類,沒有寫父類的是經典類

d. 經典類目前在python裡基本沒有應用

e. 保持class與type的統一對新式類的例項執行a.__class__與type(a)的結果是一致的,對於舊式類來說就不一樣了。

f.對於多重繼承的屬性搜尋順序不一樣新式類是採用廣度優先搜尋,舊式類採用深度優先搜尋。

a. 整型 int、 長整型 long、浮點型 float、 複數 complex

b. 字串 str、 列表 list、 元祖 tuple

c. 字典 dict 、 集合 set

d. python3 中沒有 long,只有無限精度的 int

class solution(object):

def reverse(self,x):

if -1019.設計實現遍歷目錄與子目錄,抓取.pyc檔案

import os

def get_files(dir,suffix):

res =

for root,dirs,files in os.walk(dir):

for filename in files:

name,suf = os.path.splitext(filename)

if suf == suffix:

print(res)

get_files("./",'.pyc')

20.一行**實現1-100之和

count = sum(range(0,101)) print(count)
21.python-遍歷列表時刪除元素的正確做法

遍歷在新在列表操作,刪除時在原來的列表操作

a = [1,2,3,4,5,6,7,8]

print(id(a))

print(id(a[:]))

for i in a[:]:

if i>5:

pass

else:

a.remove(i)

print(a)

print('-----------')

print(id(a))

1,可變型別有list,dict.不可變型別有string,number,tuple.

2,當進行修改操作時,可變型別傳遞的是記憶體中的位址,也就是說,直接修改記憶體中的值,並沒有開闢新的記憶體。

3,不可變型別被改變時,並沒有改變原記憶體位址中的值,而是開闢一塊新的記憶體,將原位址中的值複製過去,對這塊新開闢的記憶體中的值進行操作。

== : 比較的兩個物件的內容/值是否相等,缺省會呼叫物件的eq()方法

25.求出列表所有奇數並構造新列表

a = [1,2,3,4,5,6,7,8,9,10]

res = [ i for i in a if i%2==1]

print(res)

26.用一行python**寫出1+2+3+10248

from functools import reduce

#1.使用sum內建求和函式

num = sum([1,2,3,10248])

print(num)

#2.reduce 函式

num1 = reduce(lambda x,y :x+y,[1,2,3,10248])

print(num1)

27.python中變數的作用域?(變數查詢順序) 函式作用域的legb順序 1.什麼是legb?

l: local 函式內部作用域

e: enclosing 函式內部與內嵌函式之間

g: global 全域性作用域

b: build-in 內建作用 python在函式裡面的查詢分為4種,稱之為legb,也正是按照這是順序來查詢的

28.字串 "123" 轉換成 123,不使用內建api,例如 int()

def atoi(s):

num = 0

for v in s:

for j in range(10):

if v == str(j):

num = num * 10 + j

return num

29.given an array of integers

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例:給定nums = [2,7,11,15],target=9 因為 nums[0]+nums[1] = 2+7 =9,所以返回[0,1]

class solution:

def twosum(self,nums,target):

""":type nums: list[int]

:type target: int

:rtype: list[int]

"""d = {}

size = 0

while size < len(nums):

if target-nums[size] in d:

if d[target-nums[size]] 30.python**實現刪除乙個list裡面的重複元素

def distfunc1(a):

"""使用集合去重"""

a = list(set(a))

print(a)

def distfunc2(a):

"""將乙個列表的資料取出放到另乙個列表中,中間作判斷"""

list =

for i in a:

if i not in list:

#如果需要排序的話用sort

list.sort()

print(list)

def distfunc3(a):

"""使用字典"""

b = {}

b = b.fromkeys(a)

c = list(b.keys())

print(c)

if __name__ == "__main__":

a = [1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]

distfunc1(a)

distfunc2(a)

distfunc3(a)

31.統計乙個文字中單詞頻次最高的10個單詞?

import re

# 方法一

def test(filepath):

distone = {}

with open(filepath) as f:

for line in f:

line = re.sub("\w+", " ", line)

lineone = line.split()

for keyone in lineone:

if not distone.get(keyone):

distone[keyone] = 1

else:

distone[keyone] += 1

num_ten = sorted(distone.items(), key=lambda x:x[1], reverse=true)[:10]

num_ten =[x[0] for x in num_ten]

return num_ten

# 方法二

# 使用 built-in 的 counter 裡面的 most_common

import re

from collections import counter

def test2(filepath):

with open(filepath) as f:

return list(map(lambda c: c[0], counter(re.sub("\w+", " ", f.read()).split()).most_common(10)))

32.請寫出乙個函式滿足以下條件

該函式的輸入是乙個僅包含數字的list,輸出乙個新的list,其中每乙個元素要滿足以下條件: 1、該元素是偶數 2、該元素在原list中是在偶數的位置(index是偶數)

def num_list(num):

return [i for i in num if i %2 ==0 and num.index(i)%2==0]

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

result = num_list(num)

print(result)

36.兩個有序列表,l1,l2,對這兩個列表進行合併不可使用extend

def loop_merge_sort(l1,l2):

tmp =

while len(l1)>0 and len(l2)>0:

if l1[0] 0:

del l1[0]

while len(l2)>0:

del l2[0]

return tmp

Python 第二部分 函式

目錄前言 函式是工具,呼叫的過程即使用工具的過程,因此函式名為動詞為好。先定義再呼叫。一般格式為 def 函式名 引數 好的函式名能看出其功能 段 段可適當的注釋 段 return 返回值 函式名 呼叫函式 乙個函式無非三種情況 有引數的情況 def max2 x,y if x y print x ...

Web API 第二部分

web api 第二部分 元素偏移量 offset element.offsettop element.offsetleft element.offsetwidth 可以得到元素的大小 寬度和高度 是包含padding border width element.offsetheight elemen...

redux 第二部分

redux 的使用方法,為什麼使用 action.js 檔案,進行優化 將其分開,然後我們通過工廠函式的每次返回不同的物件,由於引數是固定的,每次返回的都是事件型別和事件資料,所以我們可以使用乙個函式,通過其返回值來返回乙個物件,讓後傳遞給 action 我們的 reducer 函式有兩個引數,引數...