找文章 / 找答案
精选问答 更多内容

[面经] Python工程师常见的10个基础面试题

puffs 显示全部楼层 发表于 2024-3-1 17:39:22 |阅读模式 打印 上一主题 下一主题
一、Python 的特点和优点是什么?

Python 是一门动态解释性的强类型定义语言:编写时无需定义变量类型;运行时变量类型强制固定;无需编译,在解释器环境直接运行。

优点:
1、解释性: Python 语言写的程序,不需要编译成二进制代码,可以直接从源代码运行程序。

2、动态性:在运行时可以改变其结构的语言 。Python是一个动态语言,除此之外如 PHP 、 Ruby 、 JavaScript 等也都属于动态语言 。

3、面向对象:面向对象编程简单来说就是基于对 类 和 对象 的使用,所有的代码都是通过类和对象来实现的编程就是面向对象编程!面向对象的三大特性:封装、继承、多态

4、语法简洁:Python 是一种代表简单注意思想的语言,阅读一个良好的 Python 程序,即使是在 Python 语法要求非常严格的大环境下,给人的感觉也像是在读英语段落一样。

5、可扩展性:Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。

二、什么是 PEP8?

PEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书
简单说就是一种编码规范,是为了让代码“更好看”,更容易被阅读。

三、Python解释器种类以及特点?

Python是一门解释器语言,须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码。

Python解释器主要有以下几个:
1、CPython:官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广泛。

2、IPython:IPython是基于CPython之上的一个交互式解释器

3、PyPy:PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。

4、Jython:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

5、IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

四、Python面向对象三大特性?

1、封装隐藏对象的属性和实现细节,仅对外提供公共访问方式。在python中用双下划线开头的方式将属性设置成私有的 。好处:1. 将变化隔离;2. 便于使用;3. 提高复用性;4. 提高安全性。

2、继承继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类。即一个派生类继承基类的字段和方法。

3、多态一种事物的多种体现形式,函数的重写其实就是多态的一种体现 。Python中,多态指的是父类的引用指向子类的对象 。

五、Python 中有几种数据类型?

Python 中主要有8种数据类型:
number(数字)、string(字符串)、list(列表)、tuple(元组)、dict(字典)、set(集合)、Boolean(布尔值)、None(空值)。

六、Python变量、函数、类的命名规则?

1、不能以数字开头,不能出现中文。
2、命名以字母开头,包含数字,字母(区分大小写),下划线。
3、不能包含关键字,见名知意。

七、Python可变与不可变数据类型的区别?

答:Python中看可变与不可变数据类型,主要是看变量所指向的内存地址处的值是否会改变 。 Python 的六种标准数据类型:数字、字符串、列表、元组、字典、集合。

不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)。

可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。
九、Python中迭代器和生成器的区别?

Python中生成器能做到迭代器能做的所有事,而且因为自动创建了__iter__()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析,同时节省内存。除了创建和保持程序状态的自动生成,当发生器终结时,还会自动跑出StopIterration异常。
列表、元组、字典、字符串都是可迭代对象。
数字、布尔值都是不可迭代的。

八、Python字典以及基本操作

字典是 Python 提供的一种常用的数据结构,主要用于存放具有映射关系的数据 。
字典是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的。每个key-value之间用“:”隔开,每组用“,”分割,整个字典用“{}”括起来 ,格式如下所示:
dictionary = {key1 : value1, key2 : value2 }
定义字典时,键前值后,键必须唯一性,值可以不唯一,如果键有相同,值则取最后一个;值可以是任何的数据类型,但是键必须是不可变的数据类型(数字、字符串、元组)。想要访问字典中的值,只需要将键放入方括号里,如果用字典里没有的键访问数据,会输出错误 。

九、说说Python多线程与多进程的区别?

1、多线程可以共享全局变量,多进程不能

2、多线程中,所有子线程的进程号相同;多进程中,不同的子进程进程号不同

3、线程共享内存空间;进程的内存是独立的

4、同一个进程的线程之间可以直接交流;两个进程想通信,必须通过一个中间代理来实现

5、创建新线程很简单;创建新进程需要对其父进程进行一次克隆

6、一个线程可以控制和操作同一进程里的其他线程;但是进程只能操作子进程

两者最大的不同在于:在多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响;而多线程中,所有变量都由所有线程共享 。

十、说说Python中HTTP常见响应状态码?

答:http协议是超文本传输协议,是用于从万维网服务器传输文本到本地浏览器的传送协议,是基于tcp/ip通信协议来传输数据的。

HTTP状态码(HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。




回复

使用道具 举报

精彩评论1

zyj20230601青铜四 显示全部楼层 发表于 2024-3-4 09:49:52
http协议是超文本传输协议,是用于从万维网服务器传输文本到本地浏览器的传送协议,是基于tcp/ip通信协议来传输数据的。
回复 支持 反对

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部