9.编程面试

七言 2025-8-1 15 8/1

[TOC]

编程面试

python编程面试题

1. python中元组和列表的区别?

  • 列表可以看成是动态数组,它们是可变的,并且可以重新增加、修改元素
  • 元组可以看成是静态的数组,它们是不可变的,并且长度一旦创建就无法改变

2. python中为什么使用 *args,**kwargs?

  • 如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使用 *args
  • 如果我们不知道要往函数中传入多少个关键词参数,或者传入字典的值作为关键字参数时,那就使用 **kwargs

3. python中的深拷贝和浅拷贝的区别?

  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部子对象。当父对象有可变类型数据时,新对象和父对象会指向同一个内存地址。也就是B拷贝A,A变,B也变
  • 深拷贝(deepcopy):完全拷贝了父对象及其子对象。新对象重新开辟一个内存空间,跟原对象没有任何关系,所以就是B拷贝A,A变,B不变

4. python中match和search的区别?

  • match()函数只检测是不是在string的开始位置匹配
  • search()函数会扫描整个string查找匹配
  • 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回None

5. 简要说明下你对生成器和迭代器的理解?

  • 迭代器:迭代器是访问集合元素的一种方式,是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
  • 迭代器有两个基本方法:iter()和next()。字符串,列表或者元组对象都可用于创建迭代器;任何实现了_iter_和_next_()方法的对象都是得带器。_iter_返回迭代器自身 ,_next_返回容器中的下一个值
  • 生成器:生成器是一种特殊的迭代器,不需要像上面的类一样写_iter_()和_next_()方法,只需要一个yield关键字。生成器是边计算边遍历

6. 说一下面向对象的概念?

  • 面向对象编程,简称OOP,是一种程序设计思想
  • 面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成类(类实例化后才是对象)
  • 1.根据需求,确定职责--要做的事情
  • 2.根据职责确定不同的对象,在对象内部封装不同的方法

7. 用python语法实现 I love china,输出china love i

def resverse(str_list,strat,end):
    while start < end:
        str_list[start],str_list[end],str_list[start]
        start = start + 1
        end = end - 1

setence = 'i love china'
str_list = list(setence)
i = 0 

while i < len(str_List)
    if str_List[i] != '':
        start = i
        end = start + 1
        while (end < len(str_list) and (str_list[]end != ''):
            end += 1
        resverse(str_list,start,end - 1)
        i = end
    else:
        i += 1

str_list.reverse()
print(''.join(str_list))

8. 现在有一个列表a = [1,3,12,7,3,1,5,8,12,5,21,44] 去除其中的重复项

a = [1,3,12,7,3,1,5,8,12,5,21,44]

# set()去重
i = list(set(a))
print(i)

# 遍历
b  = []
for x in a:
    if x not in b:
        b.append(x)

9. 请用代码实现冒泡排序?

def bubble_sort(array):
for j in range(len(array) - 1,0,-1):
    for i in range(i):
        if array[i] > array[i + 1]:
            array[i],array[i + 1] = array[i + 1],array[i]

10. 用代码实现斐波那契数列?

def fib_test(n):
    if n == 0 or n == 1:
        return n 
    return fib_test(n - 1) + fib_test(n - 2)

11. 用代码实现排序算法?

def sort(arr):
for j in range(len(arr) - 1):
    minindex = j 
    for i in range(j + 1,len(arr),1):
        if (add[i] < arr[minindex]):
            minindex = i
    arr[j],arr[minindex] = arr[minindex],arr[j]

12. 用代码判断一个数字是否是回文数?

def is_palindrome(num):
    n = list(str(num))
    tmp = int(''.join(n[::-1]))
    return num == tmp
- THE END -

七言

8月01日16:39

最后修改:2025年8月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论