找私服-python面试基础知识(二),附带详细答案哦!

时间:2019-11-19 11:00 来源: www.seosem.ws

最近,小编在整理python面试基础知识,看了很多博客、文章和咨询了一些大厂公司大牛。了解到,在python面试的时候,不仅要求你有项目经验,还要考试代码呢!今天,小编和大家分享一下python面试基础知识,希望帮忙大家找到理想的工作!

1573439053(1).jpg

24、合并两个元组到字典

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)  报错

# 列表

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

a[3][2] = 2

# print(a)

26、sort 和 sorted 的区别

# sort() 是可变对象列表(list)的方法,无参数,无返回值,sort() 会改变可变对象.

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 的全局解释器锁,同一进程中假如有多个线程运行,

# 一个线程在运行 Python 程序的时候会占用 Python 解释器(加了一把锁即 GIL),

# 使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。

# 如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。

# 所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。

28、将列表内的字典按value大小排序

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

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

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

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

# print(list1)

29、说说ang()和all()有什么区别

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

# any如果都是0,None,False,Null 时,返回 True。

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

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

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

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

30、反转一个整数

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、内部函数——>闭包——>装饰器

# 一、内部函数

def outer():

    def inner():

        x = 10

 

# 二、闭包

# 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,

# 那么内部函数就被认为是闭包(closure)。

n = 'hello'

def outer(arg):

    def inner():

        arg

    return inner

f = outer(n)

 

# 三、装饰器

# 装饰器是一种特殊的闭包,就是在闭包的基础上传递了一个函数,

# 然后覆盖原来函数的执行入口,以后调用这个函数的时候,就可以额外实现一些功能了

def outer(arg):

    def inner():

        print("*" * 20)

        arg()

        print("*" * 20)


    return inner

@outer   # echo = outer(echo)   # inner

def echo():

    print('刘乐骞NB!')

# echo()

32、实现斐波那契数列

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 是用来生成迭代器的语法,在函数中,如果包含了 yield,那么这个函数就是一个迭代器。

# 当代码执行至 yield 时,就会中断代码执行,直到程序调用 next() 函数时,才会在上次 yield 的地方继续执行

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、简单介绍一下继承

# 一个类继承自另一个类,也可以说是一个孩子类/派生类/子类,继承自父类/基类/超类,

# 同时获取所有的类成员(属性和方法)。

# 支持的类型:

# 1.单继承- 一个子类类继承自单个基类

# 2.多重继承- 一个子类继承自多个基类

# 3.多级继承- 一个子类继承自一个基类,而基类继承自另一个基类

# 4.分层继承- 多个子类继承自同一个基类

# 5.混合继承- 两种或两种以上继承类型的组合

36、//,%和**

# //:向下取整

# %:取模

# **:幂运算

 

37、python异常处理

# 基本语法

# try:

#     被检测的代码块

# except 异常类型:

#     try中一旦检测到异常,就执行这个位置的逻辑

# eg:

# def func(arg):

#     try:

#         arg +=1

#     except TypeError as e:

#         print(e)

 

# func('光哥')

 

# 主动触发异常

# try:

#     raise TypeError('类型错误')

# except Exception as e:

#     print(e)

38、统计字符串中单词出现次数

from collections import Counter

str1 = "ahdbgdhsjidhihisfjbaj"

# print(Counter(str1))

以上,就是python面试基础知识,小编还会陆续更新哦!希望大家都能找到合适的工作!

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