python技术面试题(二十三)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: python技术面试题(二十三)

每日分享

The brain is like a muscle. When it is in use we feel very good. Understanding is joyous.

大脑就像肌肉一样,当我们使用时会感到愉悦。理解是充满快乐的。

小闫语录:

勤于思考,别让你的小脑瓜生锈哦~


Unix

1.查询所有环境变量的命令是: env 。设置一个新变量的命令是: export

2.动态查看日志尾部几行的命令是:

tail -n file

查看前面的几行使用 head-n 命令。

3.查询脚本定时任务的命名是:

crontab -l

4.screen命令中,创建新会话使用:

screen -S <name>
vim test

若要终止会话,先退出 vim ,然后使用快捷键 ctrl + d

查询所有会话使用:

screen -ls

暂时离开当前 session 使用:

Crtl + a +d

保存进程并退出作业(程序在 screen 中继续运行,screen -ls 可查看)

5.批量杀掉含有 filter 名称的进程:

ps -ef|grep filter|grep -v grep|cut -c 9-15|xargs kill -9

管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

"ps -ef" 是 linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令 "grep filter" 的输入。

"grep filter" 的输出结果是,所有含有关键字 "filter" 的进程。

"grep -v grep" 是在列出的进程中去除含有关键字 "grep" 的进程。

"cut -c 9-15" 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

"xargs kill -9" 中的 xargs 命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程。

其它类似的情况,只需要修改"grep filter"中的关键字部分就可以了。


git

1.查看当前 git 仓库的状态:

git status

2.什么时候使用 git stash

暂存

3.如何从 git 中删除文件,并将其从文件系统中删除:

# 删除文件
  rm 文件名
  # git确定删除文件,对比添加文件git add
  git rm 文件名
  # 删除后记录删除操作版本
  git commit -m '删除描述'

4.本地创建并切换分支到 dev:

git checkout -b dev

5.将分支推送到远程:

git push -u origin dev

6.在本地打标签:

git tag -a 标签名 -m '标签描述'

7.将标签推送到远程仓库:

1. git push origin 标签名



Python 基础知识

1.with 是什么,适用场景?

with 语句是 Pyhton 提供的一种简化语法,with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能。

with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的『清理』操作,释放资源。

比如下面的例子:

with open('test', 'w') as f:
    f.write('欢迎关注 小闫笔记 ')

文件在使用后会自动关闭。

2.with 的执行原理,如何自己实现一个 上下文管理器?

上下文管理器背后工作的机制是使用Python的方法: __enter____exit__

__enter__ 方法会在执行 with 后面的语句时执行,一般用来处理操作前的内容。比如一些创建对象,初始化等。

__exit__方法会在 with 内的代码执行完毕后执行,一般用来处理一些善后收尾工作,比如文件的关闭,数据库的关闭等。

自己可以通过,如下的形式实现:

class email(objec):
    def __enter__(self):
        pass
    def __exit__(self):
        pass

使用的时候:

with email():

伪代码只表示意思,具体不实现功能

3.如下代码输出什么?

def func_error():
    try:
        IO 错误代码
    except IOError:
        return 1
    finally:
        return 2
test = func_error()
print(test)

输出的结果为 2。

web 框架

1.在 Django 中如果有一些复杂的 SQL 指令,怎么使用原生的 SQL 命令:

第一种方式:使用游标进行操作

from django.db import connection
# 创建游标
cursor = connection.cursor()
# 执行 SQL 语句
cursor.execute(SQL 语句)
# 返回结果
row = cursor.fetchone()
row = cursor.fetchall()

第二种方式:使用 raw() 方法

  1. 模型.objects.raw(SQL 语句)

返回的是一个 RawQuerySet

2.APIView 和 View 的区别?

答:APIView 是 View 类的子类,在 View 类的基础上添加了一些额外的功能。

功能

1.视图中 request 对象不再是 Django 原始的 HTTPRequest 类的对象,而是由 DRF 框架封装成的 Request 类的对象。比如 request.data 保存解析之后的请求体的数据,并且已经解析成了字典或者类字典,相当于包含 Django 原始 request 对象中的 request.body | request.POST | request.FILES。再比如 request.query_params保存解析之后的查询字符串的数据,并且已经解析成了字典或者类字典,相当于 Django 原始 request 对象中的 request.GET。

2.响应时可以统一返回 Response 类的对象。传入原始的响应数据,会自动根据客户的请求头中 Accept 将响应数据转换为对应的格式进行返回,默认返回 json,仅支持 json 和 html。

3.异常处理:如果视图中抛出了未处理异常,DRF 框架会自动对异常进行处理,并且把处理之后的错误信息返回给客户端。

4.高级功能:认证、权限和限流

3.uwsgi 和 gunicorn 的区别?

说实话,我只是会使用,具体的原理或者底层没有看过,所以此处只进行简单的介绍,后期熟悉之后补充相关的内容。

uwsgi:

1.Django 的程序通常使用 uwsgi 服务器来运行

2.需要安装后,编写配置文件,然后设置 Nginx 配置文件让其将请求转发给 uwsgi 服务器。

gunicorn:

1.Gunicorn(绿色独角兽)是一个 Python WSGI 的 HTTP 服务器

2.从 Ruby 的独角兽(Unicorn )项目移植

3.该 Gunicorn 服务器与各种 Web 框架兼容,实现非常简单,轻量级的资源消耗

4.Gunicorn 直接用命令启动,不需要编写配置文件


ES

1.Elasticsearch 是怎么样的数据库,数据是如何存储的?

答:Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式。索引相当于关系型数据库中的数据库,类型对应关系型数据库中的表,文档对应关系型数据库中的记录

2.项目中是如何向其中添加数据的?

答:在项目中首先使用 Haystack 模块对接 Elasticsearch 引擎。然后需要配置文件(比如 Elasticsearch 运行服务器的 ip 和端口,指定 Elasticsearch 建立的索引库的名称,然后设置当添加、修改、删除数据的时候自动生成索引)。下一步就是创建索引类,来指明让搜索引擎对哪些字段建立索引,也就是可以通过哪些字段的关键字来检索数据。在 REST framework中,索引类的字段会作为查询结果返回数据的来源。

手动的执行如下命令生成初始索引:

  1. python manage.py rebuild_index

还需要创建序列化器,最后再创建视图和路由,视图继承自:

  1. drf_haystack.viewsets.HaystackViewSet
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2天前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
1月前
|
人工智能 缓存 Ubuntu
AI+树莓派=阿里P8技术专家。模拟面试、学技术真的太香了 | 手把手教学
本课程由阿里P8技术专家分享,介绍如何使用树莓派和阿里云服务构建AI面试助手。通过模拟面试场景,讲解了Java中`==`与`equals`的区别,并演示了从硬件搭建、语音识别、AI Agent配置到代码实现的完整流程。项目利用树莓派作为核心,结合阿里云的实时语音识别、AI Agent和文字转语音服务,实现了一个能够回答面试问题的智能玩偶。课程展示了AI应用的简易构建过程,适合初学者学习和实践。
102 22
|
1月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
95 1
|
1月前
|
安全 数据挖掘 编译器
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
66 6
|
2月前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2
|
3月前
|
数据采集 API 定位技术
Python技术进阶:动态代理IP的跨境电商解决方案
Python技术进阶:动态代理IP的跨境电商解决方案

推荐镜像

更多