學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

python面試基礎(chǔ)知識(shí)(二),附帶詳細(xì)答案哦!

來(lái)源:北大青鳥總部 2019年11月19日 10:55

摘要: python面試基礎(chǔ)知識(shí)(二),附帶詳細(xì)答案哦!

最近,小編在整理python面試基礎(chǔ)知識(shí),看了很多博客、文章和咨詢了一些大廠公司大牛。了解到,在python面試的時(shí)候,不僅要求你有項(xiàng)目經(jīng)驗(yàn),還要考試代碼呢!今天,小編和大家分享一下python面試基礎(chǔ)知識(shí),希望幫忙大家找到理想的工作!

1573439053(1).jpg

24、合并兩個(gè)元組到字典

a = ("liuchuanfeng", "cangjingkong")

b = (20,18)

# print(dict(zip(a,b)))

25、元組是不可變類型,列表是可變類型

# 元組

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

# a[3] = 2

# print(a)  報(bào)錯(cuò)

# 列表

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

a[3][2] = 2

# print(a)

26、sort 和 sorted 的區(qū)別

# sort() 是可變對(duì)象列表(list)的方法,無(wú)參數(shù),無(wú)返回值,sort() 會(huì)改變可變對(duì)象.

dict1 = {'songjianguo':1, 'liuleqian':2}

list1 = [2, 1, 3]

# print(list1.sort())

# print(list1)

 

dict1 = {'songjianguo':1, 'liuleqian':2}

list1 = [2, 1, 3]

# print(sorted(dict1))

# print(sorted(list1))

27、Python 中的 GIL

# GIL 是 Python 的全局解釋器鎖,同一進(jìn)程中假如有多個(gè)線程運(yùn)行,

# 一個(gè)線程在運(yùn)行 Python 程序的時(shí)候會(huì)占用 Python 解釋器(加了一把鎖即 GIL),

# 使該進(jìn)程內(nèi)的其他線程無(wú)法運(yùn)行,等該線程運(yùn)行完后其他線程才能運(yùn)行。

# 如果線程運(yùn)行過(guò)程中遇到耗時(shí)操作,則解釋器鎖解開,使其他線程運(yùn)行。

# 所以在多線程中,線程的運(yùn)行仍是有先后順序的,并不是同時(shí)進(jìn)行。

28、將列表內(nèi)的字典按value大小排序

list1 = [{'name':'liuleqian', 'age':20},

            {'name':'songjianguo', 'age':22},

            {'name':'qinyeyang', 'age':24}]

sorted(list1, key =  lambda x : x['age'])

# print(list1)

29、說(shuō)說(shuō)ang()和all()有什么區(qū)別

# all如果存在0,Null,False  返回False,否則返回True

# any如果都是0,None,F(xiàn)alse,Null 時(shí),返回 True。

# print(all([1, 2, 3, 0]))

# print(all([1, 2, 3]))

# print(any([1, 2, 3, 0]))

# print(any([0, None, False]))

30、反轉(zhuǎn)一個(gè)整數(shù)

def reverse( x):

        """

        :type x: int

        :rtype: int

        """

        num = 0

        if x == 0:

            return 0

        if x < 0:

            x = -x

            while x != 0:

                num = num*10 + x%10

                x = x//10

            num = -num

        else:

            while x != 0:

                num = num*10 + x%10

                x = x//10

            

        if num>pow(2,31)-1 or num < pow(-2,31):

            return 0

        return num

# print(reverse(-261))

31、內(nèi)部函數(shù)——>閉包——>裝飾器

# 一、內(nèi)部函數(shù)

def outer():

    def inner():

        x = 10

 

# 二、閉包

# 如果在一個(gè)內(nèi)部函數(shù)里,對(duì)在外部作用域(但不是在全局作用域)的變量進(jìn)行引用,

# 那么內(nèi)部函數(shù)就被認(rèn)為是閉包(closure)。

n = 'hello'

def outer(arg):

    def inner():

        arg

    return inner

f = outer(n)

 

# 三、裝飾器

# 裝飾器是一種特殊的閉包,就是在閉包的基礎(chǔ)上傳遞了一個(gè)函數(shù),

# 然后覆蓋原來(lái)函數(shù)的執(zhí)行入口,以后調(diào)用這個(gè)函數(shù)的時(shí)候,就可以額外實(shí)現(xiàn)一些功能了

def outer(arg):

    def inner():

        print("*" * 20)

        arg()

        print("*" * 20)


    return inner

@outer   # echo = outer(echo)   # inner

def echo():

    print('劉樂(lè)騫NB!')

# echo()

32、實(shí)現(xiàn)斐波那契數(shù)列

def fib(n):

    if n == 0:

        return False

    if not isinstance(n, int) or (abs(n) != n):

        return False

    if n <= 1:

        return n

    return fib(n-1)+ fib(n-2)

 

# print([fib(i) for i in range(1, 11)])

33、正則切分字符串

import re

str1 = 'li‵‵‵uleqian songjianguo: qinyeyang'

result = re.split(r":| ", str1)

# print(result)

34、yield

# yield 是用來(lái)生成迭代器的語(yǔ)法,在函數(shù)中,如果包含了 yield,那么這個(gè)函數(shù)就是一個(gè)迭代器。

# 當(dāng)代碼執(zhí)行至 yield 時(shí),就會(huì)中斷代碼執(zhí)行,直到程序調(diào)用 next() 函數(shù)時(shí),才會(huì)在上次 yield 的地方繼續(xù)執(zhí)行

def foryield():

    print("start test yield")

    while True:

        result = yield 5

        print("result:", result)

g = foryield()

# print(next(g))

# print("*"*20)

# print(next(g))

35、簡(jiǎn)單介紹一下繼承

# 一個(gè)類繼承自另一個(gè)類,也可以說(shuō)是一個(gè)孩子類/派生類/子類,繼承自父類/基類/超類,

# 同時(shí)獲取所有的類成員(屬性和方法)。

# 支持的類型:

# 1.單繼承- 一個(gè)子類類繼承自單個(gè)基類

# 2.多重繼承- 一個(gè)子類繼承自多個(gè)基類

# 3.多級(jí)繼承- 一個(gè)子類繼承自一個(gè)基類,而基類繼承自另一個(gè)基類

# 4.分層繼承- 多個(gè)子類繼承自同一個(gè)基類

# 5.混合繼承- 兩種或兩種以上繼承類型的組合

36、//,%和**

# //:向下取整

# %:取模

# **:冪運(yùn)算

 

37、python異常處理

# 基本語(yǔ)法

# try:

#     被檢測(cè)的代碼塊

# except 異常類型:

#     try中一旦檢測(cè)到異常,就執(zhí)行這個(gè)位置的邏輯

# eg:

# def func(arg):

#     try:

#         arg +=1

#     except TypeError as e:

#         print(e)

 

# func('光哥')

 

# 主動(dòng)觸發(fā)異常

# try:

#     raise TypeError('類型錯(cuò)誤')

# except Exception as e:

#     print(e)

38、統(tǒng)計(jì)字符串中單詞出現(xiàn)次數(shù)

from collections import Counter

str1 = "ahdbgdhsjidhihisfjbaj"

# print(Counter(str1))

以上,就是python面試基礎(chǔ)知識(shí),小編還會(huì)陸續(xù)更新哦!希望大家都能找到合適的工作!

————————————————

版權(quán)聲明:本文為CSDN博主「單車欲問(wèn)邊」的原創(chuàng)文章。

熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開班
報(bào)名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接