面试题

1. 试列出至少三种目前流行的大型关系数据库的名称

mysql oracle sqlserver

2. 有表list,共有字段ABC类型都是整数,表中有如下记录:

  A    B     C
  2    7     9
  5    6     4
  3    11    9 

现在对该表依次完成以下操作:
(1) 查询出B、C列的值,要求按B列升序排序:

select B,C from list order by B asc;

(2) 写一条新的纪录,值为 7 8 9

inset into list(A,B,C) values(7,8,9);

(3) 查询C列,要求清除重复的值,按降序排列:

select C from test group by C desc;

3. 视图的作用:

4. 列举用过的python网络爬虫所用到的网络数据包

5. 列举用过的python网络爬虫所用到的解析数据包

6. python中的编码方式

7. python3.5语言中enumerate的意思

对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值

8. (99) 的八进制表示是

8 99
8  12  3  
8  1   4 
   0   1
   
结果为143

9. 请列出三种常用的排序算法

10. 列出 python 中比较熟知的爬虫架构是______________.
11. 用 4,9,2,7 四个数字,可以使用+,-,*和/号,每个数字只使用 1 次,而且必须使 用 1 次,使表达式的结果是 24,表达式是_______.

12. 写出网络爬取过程中,遇到防爬问题的解决办法
13. for i in range(5,0,-1):print(i) 写出打印结果:

5 4 3 2 1

14. 获取 list 的元素个数,和向末尾追加元素所用的方法是____,____.

len append

15. 判断 dict 有没有某个 key 用的方法是( )

get()

16. L=range(100)  取第一到第三个元素用( ),取倒数第二个 元素用( ), 取后十个用( )

list(li[1:4])    list(li[-3:-2])    list(li[-10:])

17.  把 L 复制给 L1 用( )。注意:非引用传递

	import copy
	L1 = copy.deepcopy(L)

18. d = {‘a’:1,’b’:2,’c’:3} 请打印出 key,value 值  

d = {'a':1,'b':2,'c':3}
for a in d.items():
    print(a)

19. 如何判断一个变量是不是字符串

li = ""
print(isinstance(li,str))

20. list 和 tuple 和 dict 各自特点

tuple  元祖 固定长度不可变的顺序容器,访问效率高,适合存储一些常量数据,可以作为字典的键使用
list   列表 是长度可变有序的数据存储容器,可以通过下标索引取到相应的数据
dict   字典 长度可变的hash字典容器,存储的方式为键值对,可以通过相应的键获取相应的值,key支持多种类型

21. xrange 和 range 有什么不同

range生成的结果是一个列表,当生成一个很大的序列时会占用很大的内存空间
而xrange生成的结果则是一个生成器,当生成一个很大的序列时,性能会比range优很多

22. ‘1,2,3’如何变成[‘1’,’2’,’3’]     [‘1’,’2’,’3’]如何变成[1,2,3] ?

obj = "1,2,3".split(",")
xx = [int(i) for i in obj]

23. def add_end(L=[]):

    L.append(‘END’)

    return L
  add_end() 输出什么?
  add_end() 再次调用输出什么?为什么? 

['END']

['END'] ['END'], 因为在第一次调用的时候L就已经生成,在内存中类似于全局变量,第二次调用的时候会在第一次调用的基础上进行添加(默认参数必须指向不变的对象)

24. [34,5,12,9,21]怎么排序

sorted()

25. def func(a,b,c = 0,*args,**kw):

      pass

  *args,**kw 的作用是什么?

*args接收位置参数,**kw接收关键字传参

26. is 和 == 的区别是什么

is是对比地址   ==是对比值

27. 如何生成[1,4,9,16,25,36,64,81,100]尽量用一行实现

obj = [i**2 for i in range(11)]

28. 生成器是什么?有什么用?请写一个生成器

可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象 

def test():
    print("one")
    yield 1

29. map(str,[1,2,3,4,5,6,7,8,9])输出什么

#map函数是对一个序列的每个项依次执行函数

输出是一个map对象

加上list() 会输出['1', '2', '3', '4', '5', '6', '7', '8', '9']

30. 已知 x=43,ch=‘A’,y=1,则表达式(x>=y and ch<‘B’and y )? 

31. python 支持的数据类型有

Number(数字)  
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)

32. 请把一下函数转化成 python 的 lamabda 匿名函数:

  def add(x,y):

    return x+y 

lamabda:x,y:x+y

33.

class A(object):
  def foo(self,x):
    print('executing foo(%s,%s)'%(self,x))
  @classmethod
  def class_foo(cls,x):
    print('executing foo(%s,%s)' % (cls, x))

  @staticmethod
  def static_foo(x):
    print('executing foo(%s)' %x)

a = A()

#调用 foo 函数,参数传入 1_________________________________.

a.foo(1)

#调用 class_foo 函数,参数传入 1___________________________.

A.class_foo(1)

#调用 static_foo 函数,参数传入 1___________________________. 

a.static_foo(1)

34. python 如何实现单例模式?

class Dog(object):

    _instance = None
    _init_flag = False

    def __new__(cls, *args , **kwargs): #cls指向Dog
        if cls._instance == None:
            cls._instance = object.__new__(cls)
            return cls._instance
        else:
            return cls._instance

    def __init__(self,name):
        if Dog._init_flag == False:
            self.name = name
            Dog._init_flag = True


a = Dog("旺财")
print(a.name)
b = Dog("啸天犬")
print(b.name)

35. 什么是 lambda 函数?

36. 请写出一段 python 代码实现删除一个 list 里面的重复元素 

list(set(li))

37. 如何用 python 删除一个文件 

os.remove()

38. python 里面如何生成随机数 

random.randrange()

39. 在 Python 中,如何抛出,捕获,处理异常

raise Exception("抛出一个异常")

try:
	pass
except Exception as e:
	print(e)

40. 输入一个字符串,返回倒序排列结果:如‘abcdef’,返回‘fedcba’ 

l = "abcde"
print(l[::-1])

41. 请用自己的算法,按升序合并如下两个 list,并出去重复元素。 list1 = [2,3,8,4,9,5,6],list2=[5,6,10,17,11,2] 

print(list(set(list1 + list2)))

42. python 中,元祖和列表的主要区别是

tuple  元祖 固定长度不可变的顺序容器
list     列表 是长度可变有序的数据存储容器

43. 排好序的列表 alist 和字符 char1,表示 alist 中存在 char1 则返回 False,不存 在则返回 True 的表达式是

li = ["alex","egon"]

print(True if "alex" in li else False)

44. 列表变量 alist,将 alist 中的最大值和最小值分别赋值给 maxValue 和 minValue 的表达式是

alist = [1,2,3,4,5]
maxValue,minValue = (max(alist),min(alist))

45. 列表 alist = [{“a”:5,”b”:2},{“a”:2,”b”:8},{“a”:8,”b”:2}]请写出以键 a 的值对 alist 进行排序的表达式是

sorted(alist,key=lambda x:x['a'])

46. 求列表 alist 和 blist 交际的表达式是

47. 不依赖中间变量,交换变量 a 和 b 的值得表达式是

48. 现有列表 alist = [3,1,-4,-2],按照元素的绝对值大小进行排序的表达式是

sorted(alist,key=lambda x:abs(x))

49. 下面代码输出的结果是 

 my_dict = {'a':0,'b':1}

   def func(d):
     d['a'] = 1
     return d

func(my_dict)
my_dict['c'] = 2
print(my_dict)

{'a': 1, 'b': 1, 'c': 2}

  

  

  

1. li = [1,2,3,11,22,33,555,666,777]
  要求: {1: [1, 2, 3], 2: [11, 22, 33], 3: [555, 666, 777]}

{ i:[ k for k in li if len(str(k)) == i] for i in [len(str(i)) for i in li]}

2. 输出 [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]

r = (4, 5)
ret = [[x*i for i in range(0, r[1])] for x in range(0, r[0])]

3. [{'name':'zs','age':32},{'name':'ls','age':35}] 这样一个数据结构,取出name为zs的年龄

print([i['age'] for i in s if i['name']=='zs'])

  

  

  

http://www.cnblogs.com/tom-gao/p/6645859.html  


  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

原文地址:https://www.cnblogs.com/golangav/p/7424748.html