八维教育IT培训学校

八维教育IT培训学校七大校区

首页 > 新闻资讯 > >

IT技术面试技巧|Python编程语言基础面试试题

发布时间:2024-06-30 10:31:09 点击:
  人工智能在近几年来获得了长足的发展,并且在我们的生活中逐渐应用开来。而且由于人工智能领域的人才需求量急速增长,基础层研究人才成为需要人数更多的领域,Python编程语言作为如今人工智能时代的首选语言,在面试时,会让学员们遇到各种各样的面试试题,今天北京八维教育培训学校就与各位学子一起来了解一下,希望能够帮助到每一名学子。
Python编程语言基础面试试题
       1.若有一个jsonline格式的文件file.txt,大小约为10K,我们的处理方式为:

  def get_lines():

  l = []

  with open('file.txt', 'rb') as f:

  for eachline in f:

  l.append(eachline)

  return l

  if __name__ == '__main__':

  for e in get_lines():

  process(e) #处理每一行数据

  现在要处理一个大小为10G的file.txt文件,但是内存只有4G。如果在只修改get_lines 函数而其他代码保持不变的情况下,应该如何实现?需要考虑的问题都有那些?

  def get_lines():

  l = []

  with open('file.txt','rb') as f:

  data = f.readlines(60000)

  l.append(data)

  yield l

  要考虑的问题有:内存只有4G,无法一次性读入10G文件。而分批读入数据要记录每次读入数据的位置,且分批每次读取得太小会在读取操作上花费过多时间。

Python编程语言基础面试试题

  2.如何输入日期, 判断这一天是这一年的第几天?

  import datetime

  def dayofyear():

  year = input("请输入年份: ")

  month = input("请输入月份: ")

  day = input("请输入天: ")

  date1 = datetime.date(year=int(year),month=int(month),day=int(day))

  date2 = datetime.date(year=int(year),month=1,day=1)

  return (date1-date2).days+1

  数据类型

  3.如何反转字符串"aStr"?

  print("aStr"[::-1])

  4.下面代码的输出结果将是什么?会报错吗?

  list = ['a','b','c','d','e']

  print(list[10:])

  代码将输出[],并不会产生IndexError 错误。如果尝试用超出成员的个数的index来获取某个列表的成员,那就会报错。例如,尝试获取 list[10] 和之后的成员,会导致IndexError。然而当我们尝试获取列表的切片时,开始的index超过成员个数并不会产生IndexError,而是仅仅返回一个空列表。因为并不会报错,所以这种Bug很难追踪到。
Python编程语言基础面试试题

  5.请写出一段Python代码,实现删除list里面的重复元素?

  l1 = ['b','c','d','c','a','a']

  l2 = list(set(l1))

  print(l2)

  用list类的sort方法可以保证顺序不变:

  l1 = ['b', 'c', 'd', 'c', 'a', 'a']

  l2 = list(set(l1))

  l2.sort(key=l1.index)

  print(l2)

  也可以这样写:

  l1 = ['b', 'c', 'd', 'c', 'a', 'a']

  l2 = sorted(set(l1), key=l1.index)

  print(l2)

  也可以用遍历:

  l1 = ['b', 'c', 'd', 'c', 'a', 'a']

  l2 = []

  for i in l1:

  if not i in l2:

  l2.append(i)

  print(l2)

  企业面试题

  6.设计实现遍历目录与子目录,抓取.pyc文件

  第一种方法:

  import os

  def getFiles(dir, suffix):

  res = []

  for root, dirs, files in os.walk(dir):

  for filename in files:

  name, suf = os.path.splitext(filename)

  if suf == suffix:

  res.append(os.path.join(root, filename))

  print(res)

  getFiles("./", '.pyc')

  第二种方法:

  import os

  def pick(obj):

  try:

  if obj.[-4:] == ".pyc":

  print(obj)

  except:

  return None

  def scan_path(ph):

  file_list = os.listdir(ph)

  for obj in file_list:

  if os.path.isfile(obj):

  pick(obj)

  elif os.path.isdir(obj):

  scan_path(obj)

  if __name__ == '__main__':

  path = input('输入目录')

  scan_path(path)
Python编程语言基础面试试题

  7.如何反转一个整数,例如-123--> -321?

  class Solution(object):

  def reverse(self, x):

  if -10 < x < 10:

  return x

  str_x = str(x)

  if str_x[0] != "-":

  str_x = str_x[::-1]

  x = int(str_x)

  else:

  str_x = str_x[1:][::-1]

  x = int(str_x)

  x = -x

  return x if -2147483648 < x < 2147483647 else 0

  if __name__ == '__main__':

  s = Solution()

  reverse_int = s.reverse(-120)

  print(reverse_int)
Python编程语言基础面试试题