首页 > 编程语言 > 详细

python面试题

时间:2020-02-26 12:53:50      阅读:55      评论:0      收藏:0      [点我收藏+]

Python基础面试重点(基础篇)

第一部分必答题(每题2分)

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

    # 编程语言:一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。包括解释性编程语言和编译型编程语言,编译型语言运行速度快但开发效率低,解释型语言开发效率高但运行速度慢
    # 语言:人与人之间沟通的主要方式,每个民族都有自己的语言,包括语音系统、语汇系统、语法系统
  2. 列举Python2和Python3的区别?

    # 1.python2:源码不统一,源码重复  python3:源码统一,源码不重复
    # 2.python3:全部都是整型 python2:整型,长整型long
    # 3.python3中打印range是自己本身,-python2中打印range是列表
    # 4.Python2 中存在老式类和新式类的区别,Python3 统一采用新式类。新式类声明要求继承 object
    # 5.python2 解释器默认编码:ascii python3 解释器默认编码:unicode
  3. 看代码写结果

v1 = 1 or 2
# 1
v2 = 3 and 7 or 9 and 0
# 7
  1. 比较以下值有什么不同?

    v1 = [1,2,3]
    v2 = [(1),(2),(3)]
    v3 = [(1,),(2,),(3,)]
    # v1和v2是列表,v3是列表里套元组
  1. 用一行代码实现数值交换。

a = 1
b = 2
# a,b = b,a
  1. Python中单引号、双引号、三引号的区别?

    # 单引号和双引号都表示字符串,三引号可以表示多行
  1. is和==的区别?

    # is 是判断两边的内存地址是否相同,== 判断两边值是否相等
  1. python里如何实现tuple和list的转化?

    # tuple - list:tuple(list)
    # list - tuple:list(tuple)
  1. 如何实现字符串name=‘老男孩’的反转?

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

    # 交集:s&s1  并集:s|s1  差集:s-s1
  1. 那些情况下,y != x - (x-y )会成立?

    # xy是两个不相等的非空集合
  1. Python中如何拷贝一个对象?

    # 赋值(=):创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个
    # 浅拷贝:创建一个新的对象,只拷贝第一层元素,只有修改第一层(不可变)的时候源数据不受影响
    # 深拷贝:创建一个新的对象,不可变数据类型共用,可变数据类型新开辟一个空间
  1. 简述赋值、浅拷贝、深拷贝的区别?

    # 赋值(=):创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个
    # 浅拷贝:创建一个新的对象,只拷贝第一层元素,只有修改第一层(不可变)的时候源数据不受影响
    # 深拷贝:创建一个新的对象,不可变数据类型共用,可变数据类型新开辟一个空间
  1. pass的作用?

    # pass 不做任何事情,一般用做占位语句
  1. 阅读代码写结果。

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)
# [1,2,4,5,[‘b‘,‘c‘,‘d‘],5]
print(c)
# [1,2,4,5,[‘b‘,‘c‘,‘d‘]]
print(a)
# [1,2,4,5,[‘b‘,‘c‘,‘d‘],5]
  1. 用Python实现9 * 9乘法表。

    for i in range(1, 10):
       for j in range(1, i+1):
           print(f‘{i} * {j} = {i*j}‘, end=‘ ‘)
       print(‘ ‘)
  1. 用Python显示一个斐波那契数列。

    def func(n):
       if n == 1 or n == 2:
           return 1
       else:
           return func(n-1) + func(n-2)
    n = int(input("请输入数字:"))
    for i in range(1, n):
       print(func(i))

     

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

    # set(list)
  1. —个大小为100G的文件etl_log.txt,要读取文件中的内容,写出具体过程代码?

    with open("etl_log.txt",encoding="utf-8")
    for i in f  
    print(i)
  1. a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5)))请问 a 是什么?

    # {"a":1,"b":2,"c":3,"d":4,"e":5}
  1. lambda关键字的作用?

    # 定义一个匿名函数,通常用在需要用一个简单的函数,又不想费神给函数命名,匿名函数一般不单独使用,多于高阶函数配合使用
  1. *arg 和 **kwarg 作用?

    # *args:动态位置参数,先执行位置参数,位置参数接受后额外的参数动态位置参数进行接受 获取的是一个元组
    # **kwargs:动态关键字参数(默认),先执行默认参数,默认参数接受后额外的默认参数动态默认参数进行接受,获取的是一个字典
  1. 如何在函数中设置一个全局变量?

    # global a
  1. filter、map、reduce的作用?

    # filter:按照指定规则对数据进行过滤
    # map:映射函数,将可迭代对象中的每个元素执行指定的函数
    # reduce:累计算
  1. 什么是匿名函数?匿名函数有什么作用?

    # 匿名函数:匿名函数就是一行函数,用lambda表示
    # 作用:使用于不复杂的函数,因为函数没有名字,不必担心函数名冲突。减少占用内存
  1. Python递归的最大层数?

    # 官方说明1000  实际测试998/997
  1. 什么是迭代器?什么是可迭代对象?

    # 只要具有__iter__() 方法就是一个可迭代对象
    # 具有__iter__()和__next__()两个方法才是迭代器
  1. 什么是生成器?

    # 生成器的本质就是一个迭代器,是程序员自己写的迭代器
  1. 什么是装饰器及应用场景?

    # 在不修改源代码及调用方式,对功能进行额外添加就是装饰器
    # 装饰器能有助于检查某个人是否被授权去使用一个web应用的端点(endpoint)。它们被大量使用于Flask和Django web框架中。
  1. 什么是反射及应用场景?

    # 通过字符串操作对象的属性和方法
    #应用场景:用于处理通过用户输入,文件读取,或者网络传输所得到的字符串形式的指令来完成对应的操作
  1. 写一个普通的装饰器。

    def wrapper(func):
    def inner(*args,**kwargs):
      func()
       return inner
  1. 写一个带参数的装饰器。

    def auth(argv):
    def wrapper(func):
    def inner(*args,**kwargs):
      func()
      return inner
       return wrapper
  1. 求结果

def num():
return [lambda x:i*x for i in range(4)]
print([m(2) for m in num()])
#[6,6,6,6]
  1. def(a, b=[])这种写法有什么陷阱?

    b第二次执行函数用的还是第一次执行时实例化的地址储存
  1. 看代码写结果

def func(a,b=[]):
b.append(a)
return b
vl = func(l)
v2 = func(2,[10,20])
v3 = func(3)
print(vl,v2,v3)
# v1 = [1,3]
# v2 = [10,20,2]
# v3 = [1,3]
?
  1. 看代码写结果

def func(a,b=[]):
b.append(a)
return b
vl = func(l)
print (vl)
# [1]
v2 = func(2,[10,20])
print(v2)
# [10,20,2]
v3 = func(3)
print (v3)
# [1,3]
  1. 请编写一个函数实现将IP地址转换成一个整数。

    如10.3.9.12转换规则为:
    ?
    10 00001010
    ?
    3 00000011
    ?
    9 00001001
    ?
    12 00001100
    ?
    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
    ?
    def ipfunc(ip):
       lst = []
       s = ‘‘
       ip_int = ip.split(".")
       for i in ip_int:
           ip_bin = bin(int(i))[2:].rjust(8, "0")
           lst.append(ip_bin)
       return s.join(lst)
    ?
    ?
    print(ipfunc(‘10.3.9.12‘))
  1. 请查找一个目录下的所有文件(可能存在文件嵌套)。

    # 
  1. 求结果

import math
print (math.floor(5.5))
# 5
  1. 是否使用过functools中的函数?其作用是什么?

    # functools用于高阶函数:指那些作用于函数或者返回其他函数的函数。通常情况下,只要是
    可以被当做函数调用的对象就是这个模块的目标。
  1. re的match和search区别?

    # search 从任意位置开始查找
    # match 从头开始查看,如果不符合就不继续查找了
  1. 用Python匹配HTML tag的时候,<?>和<?>有什么区别?

    # <.>:匹配任意字符,一个点只匹配一次
    # <?>:匹配?左侧0或1个字符串 非贪婪匹配
  1. 如何生成一个随机数?

    ?

python面试题

原文:https://www.cnblogs.com/sunyongchao/p/12366223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!