python企业真题实战 - 360 面试题

考查范围:

  • 数据库 - 内连接查询,限制ip访问
  • 正则表达式 - re.sub()
  • 爬虫 - lxml,xpath
  • python基础 - python2与python3的区别
  • 多任务编程 - 多线程,互斥锁
  • 装饰器 - 带参数装饰器

360 面试题:

  • 请拿出 B 表中的 accd(A 表中和 B 表中的一样的数据)?
  • a = “abbbccc”,用正则匹配为 abccc,不管有多少 b,就出现一次?
  • xpath 使用的什么库?
  • py2 和 py3 的区别?
  • Redis 里面 list 内容的长度?
  • 多线程交互,访问数据,如果访问到了就不访问了,怎么避免重读?
  • Mysql 怎么限制 IP 访问?
  • 带参数的装饰器?
  1. 请拿出 B 表中的 accd(A 表中和 B 表中的一样的数据)?
    python企业真题实战 - 360 面试题_第1张图片
    python企业真题实战 - 360 面试题_第2张图片
    select * from B inner join on B.name = A.name
    考查:数据库连接查询之内连接查询

  2. a = “abbbccc”,用正则匹配为 abccc,不管有多少 b,就出现一次?
    思路:不管有多少个 b 替换成一个
    re.sub(r’b+’, ‘b’, a)
    考查:正则表达式之re.sub

  3. xpath 使用的什么库?
    lxml
    考查:爬虫lxml

  4. py2 和 py3 的区别?
    这里例举 5 条
    print 在 Python3 中是函数必须加括号,Python2 中 print 为 class。
    Python2 中使用 xrange,Python3 使用 range。
    Python2 中默认的字符串类型默认是 ASCII,Python3 中默认的字符串类型是 Unicode。
    Python2 中除法的结果是整型,Python3 中是浮点类型。
    Python2 中声明元类:metaclass = MetaClass,Python3 中声明元类:class
    newclass(metaclass=MetaClass):pass。

  5. Redis 里面 list 内容的长度?
    len key_name
    考查:redis中的list

  6. 多线程交互,访问数据,如果访问到了就不访问了,怎么避免重读?
    创建一个已访问数据列表,用于存储已经访问过的数据,并加上互斥锁,在多线程访问数据的时候先查看数据是否已经在已访问的列表中,若已存在就直接跳过。
    考查:多线程,互斥锁

  7. Mysql 怎么限制 IP 访问?
    grant all privileges on . to ‘数据库中用户名’@’ip 地址’ identified by ‘数据库密码’;
    (授权某个ip的用户可以通过密码访问数据库)
    考查:数据库

  8. 带参数的装饰器?
    带定长的装饰器
    考查:装饰器

# 添加输出日志的功能
def logging(flag):

    def decorator(fn):
        def inner(num1, num2):
            if flag == "+":
                print("--正在努力加法计算--")
            elif flag == "-":
                print("--正在努力减法计算--")
            result = fn(num1, num2)
            return result
        return inner

    # 返回装饰器
    return decorator


# 使用装饰器装饰函数
@logging("+")
def add(a, b):
    result = a + b
    return result


@logging("-")
def sub(a, b):
    result = a - b
    return result

result = add(1, 2)
print(result)

result = sub(1, 2)
print(result)

你可能感兴趣的:(interview)