首页 > 其他 > 详细

面试题

时间:2020-02-26 13:03:36      阅读:74      评论:0      收藏:0      [点我收藏+]

 

 

 

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

python是一门动态解释型的强类定义语言,开发速度快,比编译型语言开发速度快

2.列举Python2和python的区别? 1.python2源码不统一有重复代码,python3源码统一没有重复代码

2.python2除法的时候返回的是整形(向下取整),python3除法的时候返回的是小数(浮点型)

3.python2中的input获取的就是数据本省,python3中input获取到的内容都是字符串

3.看代码写结果

v1 = 1 or 2 v2 = 3 and 7 or 9 and 0

1 7

  1. 比较以下值有什么不同?

    v1 = [1,2,3]

    v2 = [(1),(2),(3)]

    v3 = [(1,),(2,),(3,)]

    v1是列表,v2是列表嵌套集合,v3是列表嵌套元祖

  2. 用一行代码实现数据交换。

    a = 1 b = 2

    a,b = b,a

  3. python中单引号,黄引号,三引号的区别

    单引号表示的字符串里可包含双引号,当然不能包含单引号 双引号表示的字符串里可以包含单引号,字符串都只能有一行 三个引号能包含多行字符串,同时常常出现在函数的声明的下一行,来注释函数的功能,与众不同的地方在于,这个注释作为函数的一个默认属性,可以通过 函数名.doc 来访问

  4. is和 == 的区别?

    ==只比较值是否相等,is表示id是否相等

  5. python里如何实现tuple和list的转换

    list1=[1,2]

    tuple(list1)列表转元祖

    tuple1=(0,1,2)

    list(tuple1)元祖转列表

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

    name[::-1]

    10.两个set如何获取交集,并集,差集?

    获取交集用&

    获取并集用 |

    获取差集 —

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

    x为负数的时候

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

    copy 浅拷贝

    copy.eepcopy 深拷贝

    1. 简述 赋值,浅拷贝,深拷贝的区别?

      1. 赋值是将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )。

      1. 浅拷贝是在另一块地址中创建一个新的变量或容器,但是容器内的元素的地址均是源对象的元素的地址的拷贝。也就是说新的容器中指向了旧的元素( 新瓶装旧酒 )。

      1. 深拷贝是在另一块地址中创建一个新的变量或容器,同时容器内的元素的地址也是新开辟的,仅仅是值相同而已,是完全的副本。也就是说( 新瓶装新酒 )。

     

    1. pass的作用?

      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)

    b=[1,2,4,5,[‘b‘,‘c‘,‘d‘],5]

    c=[1,2,4,5,[‘b‘,‘c‘,‘d‘]]

    a=[1,2,4,5,[‘b‘,‘c‘,‘d‘],5]

    16.用python实现9*9乘法表

    l=1 i=0 while l<10: i=1 while i<=l: if i==l: print(i,‘‘,l,‘=‘,li) else: print(i,‘‘,l,‘=‘,li,end=‘ ‘) i += 1 l += 1

    17.python显示一个斐波那契数列。

     

    def` `fib_recur(n):
    assert` `n >``=` `0
    if` `n ``in` `(``0``, ``1``):
    return` `n
    return` `fib_recur(n ``-` `1``) ``+` `fib_recur(n ``-` `2``)
    for` `i ``in` `range``(``20``):
    print``(fib_recur(i), end``=``" "``)

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

list1 = [1,3,5,7,9,7,4,3,6,1]
#将列表强制转换为集合,再转换回列表形式
list1=list(set(list1))
print(list1)
list1 = [1,3,5,7,9,7,4,3,6,1]
list2=[]
for i in list1:
  #遍历list1列表中的元素,如果该元素不在list2中则添加到list2,则list2内无重复元素
  if i not in list2:
      list2.append(i)
print(list2)

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

f = open(‘t1‘,mode="r",encoding="utf-8")

for i in f:

print(i.strip())

20.a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?

21.lambda关键字的作用?

匿名函数,

22.*arg**kwarg`作用?

在python中,这两个是python中的可变参数,arg表示任意多个位置参数,类型为tuple,**kwargs表示关键字参数,为dict,使用时需将arg放在**kwargs之前,否则会有“SyntaxError: non-keyword arg after keyword arg”的语法错误。此外arg与kwargs均可以换成其他名字

23.如何在函数中设置一个全局变量 ?

用global

24.filter、map、reduce的作用?

 

filter过滤

map映射

reduce累计数

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

有关键字lambda就是匿名函数,好处就是不用取名,而且简洁

26.Python递归的最大层数?

1000,一般电脑是998

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

具有iter()方法的就是可迭代对象

具有iter()和next()方法的是迭代器

28.什么是生成器?

生成器的本质就是迭代器,具有yield

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

装饰器就是在不修改源代码以及调用方=方式,对功能进行额外添加就是装饰器

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

 

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

def warpper():

def inner(*args,**kwargs):

return inner

32.写一个带参数的装饰器。

def auth(argv): def warpper(func): def inner(args,**kwargs): if argv == "博客园": print("欢迎登录博客园") user = input("user:") pwd = input("pwd:") if user == ‘alex‘ and pwd == "dsb": func(args,kwargs) elif argv == "码云": print("欢迎登录码云") user = input("user:") pwd = input("pwd:") if user == ‘alex‘ and pwd == "jsdsb": func(*args, kwargs)

     return inner

return warpper

def foo(): print("被装饰的函数")

msg = input("请输入您要登录的名字:") a = auth(msg) foo = a(foo)

foo()

33.求结果

def num():

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

34。def(a, b=[])这种写法有什么陷阱?

默认参数是可变数据类型 闭包

35.看代码写结果

def func(a,b=[]): b.append(a) return b

v1 = func(1) v2 = func(2,[10,20]) v3 = func(3) print(v1,v2,v3)

v1=b[1]

v2=b[1,2,10,20]

v3=b[1,2,10,20,3]

36.看代码写结果

def func(a,b=[]): b.append(a) return b

v1 = func(1) print(v1) v2 = func(2,[10,20]) print(v2) v3 = func(3) print(v3)

v1=b[1]

v2=b[2,10,20]

v3=b[3]

37,请编写一个函数实现将IP地址转换成一个整数。

如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

不会

38.

请查找一个目录下的所有文件(可能存在文件嵌套)。

os.walk()本质递归

39.求结果

import math print (math.floor(5.5))

地板除5

40.是否使用过functools中的函数?其作用是什么?

reduce wraps

41.re的match和search区别?

match 从开头进行匹配,匹配一个就停止 search 从任意位置进行匹配 匹配一个就停止

42.用Python匹配HTML tag的时候,<.>和<.?>有什么区别?

. 贪婪匹配 匹配多个任意字符 .*? 非贪婪 只匹配一次

43.如何生成一个随机数?

random

random.random()

44.super的作用?

按照mro的顺序进行继承

45.双下划线和单下划线的区别? __强制私有 _程序员约定俗成这是一个私有方法

 

46.@staticmethod和@classmethod的区别?

一个是静态方法 普通函数 一个是类方法

47.实现一个单例模式(加锁)。

48,栈和队列的区别?

栈先进后除

队列先进先出

49.以下代码输出是什么? 请给出答案并解释。

class Parent(object): x = 1

class Child1(Parent): pass

class Child2(Parent): pass

print Parent.x, Child1.x, Child2.x

Child1.x = 2 print Parent.x, Child1.x, Child2.x

 

Parent.x = 3 print Parent.x, Child1.x, Child2.x

50.参考下面代码片段

class Context: pass

with Content() as ctx: ctx.do_something() 请在Context类下添加代码完成该类的实现

1,如何获取列表中第二大的值?

list26 = [ 1, 13, 5, 6, 11, 12, 7, 8, 13] list26.sort() # 先对列表元素按从小到大进行排序 count = list26.count(list26[len(list26) - 1] ) # list26[ len(list26) - 1 ]获得列表中最大元素的下标值,count(……)获得最大元素在列表中出现的次数 c = 0 while c < count: # 使用while循环通过最大值出现的次数决定循环次数 list26.pop() # 使用pop()默认删除列表最后的元素,即最大元素,删除次数取决于循环次数即count()的值 c += 1 print(list26[len(list26) - 1]) # 打印列表最后一个元素,即未删除最大元素之前的第二大值

 

面试题

原文:https://www.cnblogs.com/zhen0427/p/12366127.html

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