阿里工程师整理的5道Python面试题

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

  • BeautifulSoup、pyquery、Xpath、lxml

2.python常用内置函数:

  • dir(对象名):返回一个列表,列出该对象所有的属性和方法;
  • help(函数名、方法名或对象):查看函数、方法或对象的帮助文档;
  • type(对象名):查看该对象的类型;
  • isinstance(对象, 类型):判断该对象是否是该类型,返回True或False;
  • range、input、print就不用多说了。
  • 以上几个使用频率应当是最高的。更多函数,请导入模块”import builtins”,dir(builtins)查看。

    3. python中的and、or、not逻辑运算符:

  • and、or、not两边的值会被放到布尔环境下,作比较
  • and运算如x and y:
  • x和y都为True时,那么返回最后一个值y
  • 否则返回两个值中的第一个布尔值为假的值,从左往右运算
  • or运算如x or y:
  • 只要有一个为真值,就返回第一个布尔值为真的值
  • 如果都为假,返回最后一个布尔值为假的值,从左往右运算
  • not运算如not x:
  • 当x的布尔值为True,返回False
  • 当x的布尔值为False,返回True

4.参数按值传递和引用传递是怎样实现的?

  • Python中的一切都是类,所有的变量都是一个对象的引用。引用的值是由函数确定的,因此无法被改变。但是如果一个对象是可以被修改的,你可以改动对象。

5. python内置的数据类型有哪些?

  • list: 链表, 有序的项目, 通过索引进行查找, 使用方括号"[]"
  • dict: 字典, 字典是一组键(key)和值(value)的组合, 通过键(key)进行查找, 没有顺序, 使用大括号"{}"
  • str:字符串,用单或双引号括起来表示字符串
  • tuple: 元组, 元组将多样的对象集合到一起, 不能修改, 通过索引进行查找, 使用括号"()"
  • set: 集合,无序, 元素只出现一次, 使用"set([])",可实现列表快速去重,不过注意返回的是一个集合
  • int: 整数,如3
  • float:浮点数,如2.3
  • complex:复数,如complex(1,2) => 1+2j
  • 可迭代(遍历)对象:list、dict、tuple、set、str
  • 可变类型:list、dict、set,其余为不可变类型
  • list、tuple、str可通过索引获取当中的元素
  • set不支持索引查找,因为数据只出现一次, 它只关心数据是否出现, 不关心其位置。