python复习基础题目

python面试题

第一部分 必答题

  1. 简述列举了解的编程语言及语言之间的区别

    • C++:弱类型编译型语言

    • java:弱类型编译型语言

    • ruby:强类型解释性语言

  2. 列举python2 与 python 3 的区别

    • python2:源码不统一,重复;python3:源码统一,且不重复

    • python2:中的input为数据类型本身,python3:中的input都是字符串

    • python2:中的整形分为整型和长整型;python3中都是整形

    • python2:中打印range(1,9)为列表,python3中为range本身

  3. 看代码写结果

    • v1 = 1 or 2 ------->1
      v2 = 3 and 7 or 9 and 0  ------>7
  4. 比较以下值有什么不同

    • v1 = [1,2,3]
      v2 = [(1),(2),(3)]
      v3 = [(1,),(2,),(3,)]

      >>> v1 v2是一样的,都是列表,v3 是列表中有三个元组
  5. 用一行代码实现数值交换

    • a = 1
      b = 2

      >>> a,b = b,a
  6. python中单引号、双引号、三引号的区别

    • 没啥区别

  7. is 和 == 的区别

    • is 表示两边的值不止相同,存储地址也一样

    • == 表示两边的值相同

  8. python里如何事项tuple 和 list 的转化

    • list(tuple)

  9. 如何实现字符串 name = '老男孩'的反转

    • name[::-1]
  10. 两个set如何获取交集、并集、差集

    • 两个集合相减得差集

    • &:交集

    • |:并集

  11. 哪些情况下,y! = x - (x-y)会成立

    • y为0 或 为False

  12. python中如何拷贝一个对象

    • copy()

  13. 简述赋值,浅拷贝、深拷贝的区别

    • 赋值:将一个变量赋值另一个变量,值相等,地址不同

    • 浅拷贝:只拷贝第一层元素地址,修改时只有修改第一层时源数据类型不会改变

    • 深拷贝:不可变数据类型公用,可变数据类型开辟新空间,无论一方怎么改,另一方都不会变

  14. pass的作用

    • 执行代码时遇到pass直接跳过,定义的函数不执行

  15. 阅读代码写结果

    • import copy
      a = [1,2,4,5,['b','c']]
      b = a
      c = copy.copy(a)
      d = copy.deepcopy(a)

      a.append(5)
      a[4].append('d')
      print(b)
      print(c)
      print(a)

      >>>
      [1,2,3,4,5,['b','c','d'],5]
      [1,2,3,4,5,['b','c','d']]
      [1,2,3,4,5,['b','c','d'],5]
  1. 用Python实现9 * 9 乘法表。

  2. 用Python显示一个斐波那契数列。

  3. 如何删除列表中重复的值?

    • 将列表先转化成集合,再把集合转化成列表

  4. 一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?

    • f = open('文件路径','r',encoding='utf-8')
      for i in f:
         print(i.strip())
  5. a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?

    • a = {'a':1,'b':2,'c':3,'d':4,'e':5}

  6. lambda关键字的作用?

    • 定义一个匿名函数

  7. *arg**kwarg作用?

    • *args 接受所有的位置参数
      **kwarg 接受所有的关键字参数
  8. 如何在函数中设置一个全局变量 ?

    • globel a = 1

  9. filter、map、reduce的作用?

    • filter--------过滤

    • map--------映射函数

    • reduce------累计算

  10. 什么是匿名函数?匿名函数有什么作用?

    • 匿名函数就是没有名字的函数,用lambda定义

    • 定义一个函数

  11. Python递归的最大层数?

    • 官方说明时1000,实测大概997,998左右

  12. 什么是迭代器?什么是可迭代对象?

    • 只要有_iter_()方法的就是可迭代对象

    • _iter_()与_next_()方法的是迭代器

  13. 什么是生成器?

    • 生成器的本质就是一个迭代器,是程序员自己写的一种迭代器

    • 使用yield声明一个生成器

  14. 什么是装饰器及应用场景?

    • 在不改变源码代码和调用方式的基础上给源码添加新功能

  15. 什么是反射及应用场景?

    • 使用字符串调用属性和方法

  16. 写一个普通的装饰器。

    • def wrapper(func):
         def inner(func):
             for i in range(6):
                 func()
             return
         return
  17. 写一个带参数的装饰器。

    • def wrapper(func):
         def inner(func):
             for i in range(6):
                 func()
             return
         return
  18. 求结果

    def num():
     return [lambda x:i*x for i in range(4)]
    print([m(2) for m in num()])

    >>>
    [6,6,6,6]
  19.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/zlx960303/p/12366172.html